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。
需求
Function |
所需的標頭 |
---|---|
free |
<stdlib.h> 和 <malloc.h> |
其他的相容性資訊,請參閱相容性在簡介中。
範例
請參閱範例的 malloc。
.NET Framework 對等用法
不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例。