共用方式為


free

解除配置或釋放記憶體區塊。

void free( 
   void *memblock 
);

參數

  • memblock
    先前配置的記憶體被釋放的區塊。

備註

free函式解除配置的記憶體區塊 (memblock),先前配置呼叫calloc, malloc,或realloc。 已釋放的位元組數等於已配置區塊時,所要求的位元組數目 (或重新配置,如果是realloc)。 如果memblock是NULL,指標會被忽略,並free立即傳回。 嘗試釋放無效的指標 (未配置的記憶體區塊的指標calloc, malloc,或realloc) 可能會影響後續的配置要求,並會造成錯誤。

如果錯誤發生在釋出記憶體, errno設為作業系統在本質上的資訊失敗。 如需詳細資訊,請參閱 errno、 _doserrno、 _sys_errlist 和 _sys_nerr

在釋放記憶體區塊之後, _heapmin 聯合未使用的區域,並將其發佈回作業系統會在堆積上的可用記憶體數量最小化。 釋放給作業系統會釋放的記憶體已還原到可用集區,而且是可供重新配置。

當應用程式被連結的 c 執行階段程式庫的偵錯版本free會解析成 _free_dbg。 如需有關如何管理在偵錯的程序的堆積的詳細資訊,請參閱的 CRT 偵錯堆積

free標示為__declspec(noalias),這表示函式會保證不能修改全域變數。 如需詳細資訊,請參閱 noalias

若要清出記憶體,以配置_malloca,使用_freea

需求

Function

所需的標頭

free

<stdlib.h> 和 <malloc.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

請參閱範例的 malloc

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

記憶體配置

_alloca

calloc

malloc

realloc

_free_dbg

_heapmin

_freea