您的位置:首页 > 编程语言 > C语言/C++

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

2011-02-19 11:35 197 查看
怎样检查你的代码有没有内存泄露呢? 需要在前面加上这些代码:

#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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: