アプリ版:「スタンプのみでお礼する」機能のリリースについて

実行ファイルのメモリ上のアドレスを以下の様に
書いて確かめましたがこのやりかたであっていますか?
(=exeファイルがメモリ上に読み込まれているアドレス)

また、実際にアドレスが表示されるのですが、このアドレスをみて
実際のメモリ本体のどこにロードされているかを理解する
必要はあるでしょうか?
カーネルのプログラミングをしているときは必要?


int _tmain(int argc, _TCHAR* argv[])
{

printf("%p\n",_tmain);

return 0;
}

A 回答 (2件)

アドレスの表示の仕方はあっています。


しかし、ロードされているアドレスを理解する事にあまり意味はないと思われます。
これによって表示されるアドレスは、実アドレスではなく仮想アドレスだからです。
※他アプリの実行を阻害しないように、プロセスが起動するたびに仮想アドレス空間が用意されます。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
やはり、理解することには意味がないでしょうね・・
それこそメモリの製造メーカに勤務するとかならない限り、、
後押しされた感じで助かりました。

お礼日時:2010/01/03 21:57

関数名をポインタとしてその値を表示した場合、それがどこのアドレスを指しているのかはOSによって異なります。

OSやCPUの種類によっては、関数本体のアドレスではなく関数の情報を格納しているfunction descriptorなどと呼ばれるデータ構造のアドレスが表示される環境もあります。
つまり、質問文にあるようなやり方で分かる場合も分からない場合もあります。

_tmainとかexeファイルという書き方からしてWindowsでしょうかね。
    • good
    • 0
この回答へのお礼

回答ありがとうございました

Windows系です

ありがとうございますm(__)m

お礼日時:2010/01/03 21:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!