動的に割り当てられたメモリ( malloc
、 )について学習するために、簡単な C++ プログラムを実行しています。realloc
free
私のコードの一部を以下に示します。
void *p = malloc(10); // Allocates 10 bytes in memory; `p` is a pointer to the first byte.
cout << "The value of the pointer p is: " << p << endl;
出力は次のようになります:
The value of the pointer p is: 0x7fbf36c00080
16 進数は によって指されるメモリ位置でありp
、この割り当ての最初のメモリ位置であることはわかっています。
自分が持っている RAM の容量を大まかに計算しようとするとき、16 進数の桁数 (12 桁) を確認し、その桁数を 16 で累乗しました。
16^12 はおよそ 2.8x10^14 に等しく、各メモリ位置には 1 バイトが格納されるため、8 GB あることはわかっていても、約 280 テラバイトの RAM があることになります。
私の計算はどこで間違えたのでしょうか?