• ベストアンサー

sizeof(ポインタ)

Windows XP HomeEditionで VisualC++2008で sizeof(ポインタ)を調べてみたら、常に4Byteでした。 これはメモリ4GBまでに対応出来るように という意味でしょうか? つまり、これが「もしも」5Byteだったら 2^8=256 4GB * 256 =1TB となり メモリが1TB(テラバイト) であっても、表現できることになるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#109581
noname#109581
回答No.1

「ポインタのサイズ=記述可能なアドレスの範囲」という考えは、よほど特殊な言語でない限り、その通りと思います。 ただし「記述可能なアドレスの範囲」と「利用可能なメモリの量」は別ですね。メモリが利用可能になるためには言語としての機能の他に、OSやハードウェアの対応も必要になります。 ちなみに、一般的なPCにWindows XPの32bit版を搭載すると、利用できるメモリは最大3GBになるような気がします。

LongSecret
質問者

お礼

ありがとうございます! そこが分かればすっきりです。 いろんな環境がありますし、現状ではそれくらいを基準に考える事が無難だと思うので メモリは食いすぎないよう適切に管理するプログラムを組みたいですよね。