在VC中,基于MFC框架的应用程序由模板生成时,已经自动添加了内存泄漏自动检测功能。当你的程序有内存泄漏,在Debug调式模式下运行就会在vc的输出窗口里显示出来,非常方便我检查程序漏洞。但是当我写一些测试程序时,往往喜欢用控制台程序来编写,但是控制台程序不会自动添加内存泄漏自动检测功能。我在网上搜索了下,找到了添加的方法,经过我的整理把他写出来,希望对我们都有用!
第一步:在程序里定下一下宏(建议定义在stdafx.h头文件中)
#ifdef _DEBUG
//for memory leak check
#define _CRTDBG_MAP_ALLOC //使生成的内存dump包含内存块分配的具体代码为止
#include <stdlib.h>
#include <crtdbg.h>
#define CheckMemoryLeak _CrtSetDbgFlag( _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG )| _CRTDBG_LEAK_CHECK_DF)
#endif
第二步:在程序的入口处(就是main函数的开头)写如下语句
#ifdef _DEBUG
CheckMemoryLeak;
#endif
经过这两步我们的控制台程序就已经可以自动检测内存泄漏了。
转载地址:http://www.cppblog.com/kylinxh/archive/2008/05/29/51457.html