可以使用VLD,Visual Leak Detector(VLD)是一款用于Visual C++的免费的内存泄露检测工具,很好很强大,就是需要安装。以下是不需要安装的方式:
直接上代码:
#ifdef _DEBUG
#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
#define DEBUG_CLIENTBLOCK
#endif
#define _CRTDBG_MAP_ALLOC
//#include <stdlib.h>
#include <crtdbg.h>
#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif
int main(int argc, char **argv) {
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
char * _str=(char*)malloc(1000);
return 0;
}
很正常的一段代码,申请了1000个字节的空间,且没有释放。
在vs中以debug模式进行调试,在程序退出后,【输出】窗口显示如下:
检测到内存泄露。