共用方式為


_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 在執行釋放作業之前執行所有指定之檔案和區塊位置之有效性檢查。 應用程式不應該提供這項資訊。 當記憶體區塊被釋放時,偵錯堆積管理器會自動檢查配置區域每端的使用者部分之完整性,如果發生覆寫發便會發出錯誤報告。 如果 _crtDbgFlag 旗標的 _CRTDBG_DELAY_FREE_MEM_DF 位元欄位已設定,釋放的區塊在記憶體區塊填入 0xDD 值,指定 _FREE_BLOCK 區塊類型,並保留在記憶體區塊的堆疊連結串列。

如果錯誤發生在釋放記憶體, errno 設定成作業系統發生錯誤的性質的資訊。 如需詳細資訊,請參閱errno、_doserrno、_sys_errlist 和 _sys_nerr

如需記憶體區塊配置、初始化的方式,並在基底堆積的偵錯版本管理記憶體區塊的詳細資訊,請參閱 CRT 偵錯堆積詳細資料。 如需配置區塊類型的資訊以及它們的使用方式,請參閱 在偵錯堆積中的區塊類型。 如需呼叫標準堆積函式以及偵錯應用程式的偵錯組建的版本之差異的詳細資訊,請參閱 堆積配置函式的偵錯版本

需求

常式

必要的標頭

_free_dbg

<crtdbg.h>

如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility)

範例

如需範例 _free_dbg使用方式,請參閱 crt_dbg2

.NET Framework 對等用法

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

請參閱

參考

偵錯常式

_malloc_dbg