ポインタのサイズは?
アドレスのサイズは、プラットフォーム依存だよー。
Intel Core 2 Duo, MacOS 10.6.5の場合はこんな感じ。
#include <stdio.h> int main(int argc, char *argv[]) { char *p; printf( "sizeof(p) = %lu\n", sizeof(p) ); return 0; }
実行結果
sizeof(p) = 8
いきなり、プラットフォーム依存デス!
なんて言われると、困っちゃうよね。
サイズを調べるというの言うのは、
格納できる住所の長さを調べているのと一緒だよ。
長ければ、長いほど、たくさんの住所を表現できるの。
4が帰ってきたら2の32乗だし、8が返ってきたら2の64乗かな。
前者が4Gで、後者が16G。
これは、扱える最大メモリサイズをあらわしてるよ。
最大4Gまでしかメモリが使えないよって言われたら、
32bitの環境なんだね、って理解してね。
Leave a Comment