ポインタのサイズは?

アドレスのサイズは、プラットフォーム依存だよー。
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