检查C++内存泄露

#ifdef _DEBUG
#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
#define DEBUG_CLIENTBLOCK
#endif
#define _CRTDBG_MAP_ALLOC

#include <assert.h>
#include <stdlib.h>
#include <crtdbg.h>

#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif


///此函数在程序入口处首先调用
///会在output的窗口中输出检查结果

void CheckOnExit()
{    
   _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
   int mCount = _CrtDumpMemoryLeaks();
   assert( mCount == 0);
}

void main()
{
   atexit(CheckOnExit);
   ...
}

此外,还可以使用Visual Leak Detector这个工具来检测

http://vld.codeplex.com/

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。