次のようにメモリを動的に割り当てています。
char* heap_start1 = (char*) malloc(1);
char* heap_start2 = (char*) malloc(1);
次のようにprintfを実行すると、驚くべきことにアドレスが連続していません。
printf("%p, %p \n",heap_start1,heap_start2);
結果:
0x8246008, 0x8246018
ご覧のとおり、15 バイトの余分なメモリがデフラグされたままになっています。それは間違いなく単語の配置のせいではありません。この独特の配置の背後にあるアイデアはありますか?
前もって感謝します!
問題があれば、Linuxでgccを使用しています。