- ベストアンサー
実行ファイルのメモリ上のアドレスについて
実行ファイルのメモリ上のアドレスを以下の様に 書いて確かめましたがこのやりかたであっていますか? (=exeファイルがメモリ上に読み込まれているアドレス) また、実際にアドレスが表示されるのですが、このアドレスをみて 実際のメモリ本体のどこにロードされているかを理解する 必要はあるでしょうか? カーネルのプログラミングをしているときは必要? int _tmain(int argc, _TCHAR* argv[]) { printf("%p\n",_tmain); return 0; }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
アドレスの表示の仕方はあっています。 しかし、ロードされているアドレスを理解する事にあまり意味はないと思われます。 これによって表示されるアドレスは、実アドレスではなく仮想アドレスだからです。 ※他アプリの実行を阻害しないように、プロセスが起動するたびに仮想アドレス空間が用意されます。
その他の回答 (1)
- salsberry
- ベストアンサー率69% (495/711)
回答No.2
関数名をポインタとしてその値を表示した場合、それがどこのアドレスを指しているのかはOSによって異なります。OSやCPUの種類によっては、関数本体のアドレスではなく関数の情報を格納しているfunction descriptorなどと呼ばれるデータ構造のアドレスが表示される環境もあります。 つまり、質問文にあるようなやり方で分かる場合も分からない場合もあります。 _tmainとかexeファイルという書き方からしてWindowsでしょうかね。
質問者
お礼
回答ありがとうございました Windows系です ありがとうございますm(__)m
お礼
回答ありがとうございました。 やはり、理解することには意味がないでしょうね・・ それこそメモリの製造メーカに勤務するとかならない限り、、 後押しされた感じで助かりました。