へのポインタを使用して、私は疑問を持って、私はプログラムからの変数のメモリアドレスをチェックして、ポインタにそのアドレスを保存することも可能ですその場所に格納されている値を出力します。ダイレクトメモリアクセス、私は<strong>C++のポインタ</strong>で遊んでいたアドレス
プログラム1:
int t1 = 34;
int t2 = 0;
std::cout << &t1;
std::cin>>t2;
これは最初のプログラム、I入力 COUT によって出力される第2のプログラムのT1のアドレス、。
プログラム2:
int* t3 = (int*)address_of_t1 // address of t1 is not a function....it will be replaced by the address returned by first program
int out = *t3;
cout <<out;
私は0
最初のプログラムを実行し、それが入力待ちましょう、ランニングを保つ。.. すると同時に、私は2番目のプログラムを実行しますが、2番目のプログラムは、常に出力、それは決して第1プログラムからのt1
の値を示す。
これを最新のOSで実行している場合、デフォルトでは、関係のない2つのプロセスのメモリスペースが互いに分離しています。 – StoryTeller
「直接メモリアクセス」という用語は、「特別な意味を持つ」(https://en.wikipedia.org/wiki/Direct_memory_access)という点で少し残念です。 – MSalters