次のコードフラグメントがあります。
char *chptr;
int *numptr;
printf("\nSize of char is %d\n",sizeof(chptr));
printf("\nSize of int is %d\n",sizeof(numptr));
次の出力を取得しました。
Size of char is 4
Size of int is 4
明らかに、ポインターは2 32 - 1までのアドレスを格納できます。
Windows 7 32-bit
とでオペレーティング システムを使用しCode::Blocks 10.05
ていMingW
ます。
しかし、私のシステムにPentium Dual-Core
は36 Bit Address Bus
. 現在、4 GBのRAMがあります。しかし、RAM のサイズを増やして、「C ポインターは、このように拡張されたアドレス空間をどのように処理できるでしょうか?」と言うと8 GB
し ます。C ポインターのサイズはわずか 32 ビットですが、アドレス空間は 2 32をはるかに超えています。
助言がありますか?前もって感謝します。
PS: ポインターのアドレスストレージを扱うここでの回答を確認しましたが、私の質問はカバーされていません。