建議使用 Visual Studio 2017

_freea

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

取消配置或釋放記憶體區塊。

void _freea(   
   void *memblock   
);  

參數

memblock
要釋放之先前配置的記憶體區塊。

無。

_freea函式會取消配置的記憶體區塊 (memblock) 的先前呼叫所配置_malloca_freea檢查是否堆積或堆疊上配置記憶體。 如果在堆疊上配置_freea不做任何動作。 如果它已在堆積上配置,釋出的位元組數目等於要求時區塊是何時配置的位元組數目。 如果memblockNULL,指標就會忽略和_freea立即傳回。 嘗試釋放不正確的指標 (不由所配置的記憶體區塊的指標_malloca) 可能會影響後續的配置要求,導致錯誤。

_freea呼叫free內部如果找到,堆積上配置記憶體。 是否已在堆積上的記憶體堆疊由標記放在之前配置的記憶體位址的記憶體中。

若釋放記憶體發生錯誤,會使用來自作業系統且具有失敗性質的資訊設定 errno。 如需詳細資訊,請參閱errno、 _doserrno、 _sys_errlist 和 _sys_nerr

在釋放記憶體區塊後, _heapmin聯合未使用的區域,並將它們釋放回作業系統,在堆積上的可用記憶體數量降至最低。 釋放的記憶體並不會釋放給作業系統還原成可用的集區,並且可供重新配置。

呼叫_freea必須隨附於所有呼叫_malloca。 它也會發生的錯誤呼叫_freea在相同的記憶體。 當應用程式連結 C 執行階段程式庫的偵錯版本特別_malloc_dbg定義啟用的功能_CRTDBG_MAP_ALLOC,很容易尋找遺失或重複的呼叫_freea。 如需堆積偵錯程序期間的管理方式的詳細資訊,請參閱CRT 偵錯堆積

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

函式必要的標頭
_freea<stdlib.h>和<malloc.h></malloc.h></stdlib.h>

如需更多的相容性資訊,請參閱<簡介>中的 Compatibility

請參閱範例_malloca

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

記憶體配置
_malloca
calloc
malloc
_malloc_dbg
realloc
_free_dbg
_heapmin

顯示: