したがって、ヒープに 256 ブロックを割り当てました。
char* ptr1 = malloc(128);
char* ptr2 = malloc(128);
現在ヒープの上にあると想定しているptr2を解放した後、プログラムブレーク(ヒープの現在の場所)は減少しません。ただし、別の malloc を実行すると、malloc によって返されるアドレスは、解放されたアドレスと同じになります。
だから私は次の質問があります:
ブロックを解放しても、プログラム ブレークが減らないのはなぜですか? free を呼び出すと、正確には何が起こりますか?次に malloc を宣言したときにアドレスが同じになるように、解放されたメモリをどのように追跡しますか?