free() 如何得知要釋放的記憶體大小?


free() 函式用於取消在使用 malloc()、calloc() 和 realloc() 分配的記憶體。free() 的語法很簡單。我們只需使用帶指標的 free。然後可以清理記憶體。

free(ptr);

free() 不將任何大小作為引數,而只有指標。因此 возникает вопрос:free() 函式如何瞭解要取消分配的塊的大小?

當我們使用動態記憶體分配技術進行記憶體分配時,這在實際堆部分中完成。它建立的字比請求的大小大一個字。這個額外的字用於儲存大小。當 free() 要清除記憶體空間時,將使用此大小。

更新日期:2019 年 7 月 30 日

2K+ 瀏覽量

開啟你 職業生涯

完成課程,獲得認證

開始
廣告