共用方式為


_CrtDumpMemoryLeaks

發生記憶體流失時,傾印偵錯堆積中的所有記憶體區塊 (僅限偵錯版本)。

語法


int _CrtDumpMemoryLeaks( void );

傳回值

_CrtDumpMemoryLeaks 如果找到記憶體流失,則傳 TRUE 回 。 否則,此函式會傳回 FALSE

備註

_CrtDumpMemoryLeaks 函式會判斷自程式執行開始以來是否發生記憶體流失。 發現流失時,會以使用者可讀格式傾印堆積中所有物件的偵錯標頭資訊。 若未定義 _DEBUG,將會在前置處理期間移除對 _CrtDumpMemoryLeaks 的呼叫。

程式執行結束時經常會呼叫 _CrtDumpMemoryLeaks,以確認應用程式所配置的所有記憶體皆已釋放。 使用 函式開啟_CRTDBG_LEAK_CHECK_DF旗標的_CrtSetDbgFlag_crtDbgFlag位字段,即可在程序終止時自動呼叫函式。

_CrtDumpMemoryLeaks 呼叫 _CrtMemCheckpoint 以取得堆積的目前狀態,然後掃描狀態是否有尚未釋放的區塊。 遇到解除凍結區塊時, _CrtDumpMemoryLeaks 從程式執行開始,呼叫 _CrtMemDumpAllObjectsSince 傾印堆積中配置的所有對象資訊。

根據預設,內部 C 運行時間區塊 (_CRT_BLOCK) 不會包含在記憶體轉儲作業中。 函 _CrtSetDbgFlag 式可用來開啟 _CRTDBG_CHECK_CRT_DF 的 位 _crtDbgFlag 元,以在洩漏偵測程式中包含這些區塊。

如需堆積狀態函式及 _CrtMemState 結構的詳細資訊,請參閱堆積狀態報告函式 (部分機器翻譯)。 如需在偵錯版之基底堆積中如何配置、初始化及管理記憶體區塊的詳細資訊,請參閱 CRT 偵錯堆積詳細資料 (部分機器翻譯)。

需求

常式 必要的標頭
_CrtDumpMemoryLeaks <crtdbg.h>

如需相容性詳細資訊,請參閱相容性

程式庫

僅限偵錯版本的 C 執行階段程式庫

範例

如需如何使用 _CrtDumpMemoryLeaks的範例,請參閱 crt_dbg1

另請參閱

偵錯常式