可以使用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模式进行调试,在程序退出后,【输出】窗口显示如下:
检测到内存泄露。