ポインターのサイズを決定するものは何なのか、多くの質問がありました。基本的に経験則として、これはプロセッサ アーキテクチャであると言えます。
x86 -> 4 バイト ポインター
x64 -> 8 バイト ポインター
システムバスが原因だと言う人もいれば、否定する人もいます。アーキテクチャがポインタのサイズを教えてくれるとしましょう。
4 GB の RAM をアドレス指定するには、4,294,967,296 のマッピングが必要であり、サイズ 4 バイトのポインターは 4,294,967,296 のメモリ位置をアドレス指定できます。
8 GB の RAM をアドレス指定するには、8,589,934,592 のマッピングが必要であり、サイズが 4 バイトのポインターではすべての可能な値をアドレス指定できません。これが、x86 アーキテクチャで 4GB 以上の RAM を搭載できない理由ですか?