プロが教えるわが家の防犯対策術!

Windows XP HomeEditionで
VisualC++2008で
sizeof(ポインタ)を調べてみたら、常に4Byteでした。
これはメモリ4GBまでに対応出来るように
という意味でしょうか?

つまり、これが「もしも」5Byteだったら
2^8=256
4GB * 256 =1TB
となり
メモリが1TB(テラバイト)
であっても、表現できることになるのでしょうか?

A 回答 (1件)

「ポインタのサイズ=記述可能なアドレスの範囲」という考えは、よほど特殊な言語でない限り、その通りと思います。



ただし「記述可能なアドレスの範囲」と「利用可能なメモリの量」は別ですね。メモリが利用可能になるためには言語としての機能の他に、OSやハードウェアの対応も必要になります。

ちなみに、一般的なPCにWindows XPの32bit版を搭載すると、利用できるメモリは最大3GBになるような気がします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/01/23 11:08

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