動的に割り当てられたメモリ(malloc
、realloc
、およびfree
)について学習するために、単純なC++プログラムを実行しています。
これが私のコードのスニペットです:
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があります。
計算のどこが間違っていますか?