_free_dbg
釋放堆積中的記憶體區塊 (僅限偵錯版本)。
語法
void _free_dbg(
void *userData,
int blockType
);
參數
userData
要釋放之已配置記憶體區塊的指標。
blockType
要釋放之已配置記憶體區塊的類型:_CLIENT_BLOCK
、_NORMAL_BLOCK
或 _IGNORE_BLOCK
。
備註
函 _free_dbg
式是函 free
式的偵錯版本。 未定義 時 _DEBUG
,對的每個呼叫 _free_dbg
都會縮減為 對 free
的呼叫。 free
和 _free_dbg
都會釋放基底堆積中的記憶體區塊,但 _free_dbg
容納兩個偵錯功能:將釋放的區塊保留在堆積的已連結清單中以模擬低記憶體狀況的能力,以及釋放特定配置類型的區塊類型參數。
_free_dbg
會先對所有指定檔案和區塊位置執行有效性檢查,再執行釋放作業。 應用程式不應該提供這項資訊。 釋放記憶體區塊時,偵錯堆積管理員會自動檢查使用者部分任一端緩衝區的完整性。 它會在偵測到覆寫時發出錯誤報告。 _CRTDBG_DELAY_FREE_MEM_DF
如果設定旗標的_crtDbgFlag
位欄位,釋放區塊會填入值0xDD、指派_FREE_BLOCK
區塊類型,並保留在堆積的記憶體區塊鏈接清單中。
若釋放記憶體發生錯誤,會使用來自作業系統且具有失敗性質的資訊設定 errno
。 如需詳細資訊,請參閱errno
, _doserrno
, _sys_errlist
和_sys_nerr
.
如需如何在基底堆積偵錯版本中配置、初始化及管理記憶體區塊的相關信息,請參閱 CRT 偵錯堆積詳細數據。 如需配置區塊類型及其使用方式的相關信息,請參閱 偵錯堆積上的區塊類型。 如需呼叫標準堆積函式與偵錯版本之間的差異相關信息,請參閱 堆積配置函式的偵錯版本。
需求
常式 | 必要的標頭 |
---|---|
_free_dbg |
<crtdbg.h> |
如需相容性詳細資訊,請參閱相容性。
範例
如需如何使用 _free_dbg
的範例,請參閱 crt_dbg2
。