检查C++内存泄露的方法

    技术2026-05-27  8

    怎样检查你的代码有没有内存泄露呢? 需要在前面加上这些代码: #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> #include <string.h> #include <stdio.h> #ifdef _DEBUG #define new DEBUG_CLIENTBLOCK #endif 然后在要检测的代码前面加上: _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); 在后面加上: _CrtDumpMemoryLeaks(); 如: #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> #include <string.h> #include <stdio.h> #ifdef _DEBUG #define new DEBUG_CLIENTBLOCK #endif int main() {     _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );     int *p;     p = new int;     _CrtDumpMemoryLeaks();     return 0; } 然后按F5进行调试,会发现输出框中显示: Detected memory leaks!

     

     原文地址 http://nealblog.cn/blog/boblog/read.php?92

     

     

    还没试过,不知道行不行 哈哈 试一下~

    最新回复(0)