1. 程式人生 > >vs2013 記憶體洩露檢測方法

vs2013 記憶體洩露檢測方法

[轉] http://blog.csdn.net/windows_nt/article/details/8652191

非MFC程式可以用以下方法檢測記憶體洩露:

1.程式開始包含如下定義:

#ifdef _DEBUG
#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
#define DEBUG_CLIENTBLOCK
#endif  // _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif  // _DEBUG

2.程式中新增下面的函式:

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF);

Debug版本程式執行結束後如有記憶體洩漏,輸出視窗中會顯示類似資訊:
Detected memory leaks!
Dumping objects ->
g:\programs\test\test.cpp(16) : {51} client block at 0x00385C58, subtype 0, 4 bytes long.
 Data: <    > CD CD CD CD
Object dump complete.