共用方式為


_free_dbg

釋放堆積 (偵錯版本) 中的記憶體的區塊。

void _free_dbg( 
   void *userData,
   int blockType 
);

參數

  • userData
    若要釋出配置的記憶體區塊的指標。

  • blockType
    要釋放的已配置的記憶體區塊的型別: _CLIENT_BLOCK, _NORMAL_BLOCK,或_IGNORE_BLOCK。

備註

_free_dbg 函式是偵錯版本的免費函式。當 _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

如需有關如何記憶體區塊會配置、 初始化,而且在基底堆積的偵錯版本管理的資訊,請參閱記憶體管理和偵錯堆積。配置的區塊型別和它們的使用方式的相關資訊,請參閱類型的區塊在偵錯堆積上。呼叫 [應用程式的偵錯組建中的 [標準的堆積函式和它的偵錯版本之間的差異的相關資訊,請參閱使用偵錯版本 Versus 基底版本

需求

常式

所需的標頭

_free_dbg

<crtdbg.h>

如需相容性資訊,請參閱相容性在簡介中。

範例

範例中,如何使用_free_dbg,請參閱 crt_dbg2

.NET Framework 對等用法

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

請參閱

參考

偵錯常式

_malloc_dbg