_CrtCheckMemory
在偵錯堆積中檢查配置的記憶體區塊的完整性 (僅偵錯版本)。
int _CrtCheckMemory( void );
傳回值
如果成功,則 _CrtCheckMemory 會傳回 TRUE;否則,函式會傳回 FALSE。
備註
_CrtCheckMemory 函式是由偵錯堆積管理員就會驗證配置來驗證基礎基底堆積並檢查每個記憶體區塊。 如果錯誤或記憶體不一致在基礎基底堆積、偵錯標頭資訊或覆寫緩衝區發生, _CrtCheckMemory 會產生與描述錯誤條件的資訊的偵錯報告。 如果未定義 _DEBUG,在前置處理中,對 _CrtCheckMemory 的呼叫將被移除。
使用 _CrtSetDbgFlag 函式, _CrtCheckMemory 行為可以透過設定 _crtDbgFlag 旗標的位元欄位控制項。 將 _CRTDBG_CHECK_ALWAYS_DF 位元欄位打開會導致 _CrtCheckMemory 在每一次記憶體配置被要求時呼叫。 雖然這個方法會拖慢執行,但對於快速尋找錯誤很有用。 將 _CRTDBG_ALLOC_MEM_DF 位元欄位關掉會導致 _CrtCheckMemory 不去驗證堆積且立即傳回 TRUE。
由於這個函式會傳回 TRUE 或 FALSE,它可以傳遞至 _ASSERT 巨集之一,以建立一個簡單的偵錯錯誤處理機制。 如果在堆積損毀,偵測到下列範例造成判斷提示失敗:
_ASSERTE( _CrtCheckMemory( ) );
如需 _CrtCheckMemory 如何運作的詳細資訊可以使用與其他偵錯功能,請參閱 報告堆積的狀態函式。 如需記憶體管理和偵錯堆積的概觀,請參閱 CRT 偵錯堆積詳細資料。
需求
常式 |
必要的標頭 |
---|---|
_CrtCheckMemory |
<crtdbg.h> |
如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility) 。
程式庫
C run-time libraries 版本的偵錯
範例
如需 _CrtCheckMemory 使用方式的範例,請參閱 crt_dbg1。
.NET Framework 對等用法
System::Diagnostics::PerformanceCounter