内存泄漏检测问题的一种简单解决办法

来源:互联网 发布:vs2010 mfc编程入门 编辑:程序博客网 时间:2024/05/01 07:17

根据微软的描述

#define _CRTDBG_MAP_ALLOC

#include <stdlib.h>

#include <crtdbg.h>

然后就可以_CrtDumpMemoryLeaks();

这个方法基本上输出的都是crtdbg.h 内存泄漏,实际中没什么大用。

 以前写程序的时候总是模仿MFC, 自己搞一个DEBUG_NEW。

然后在每个文件里都有个

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

没别的原因,MFC 牛啊,跟着学就好了。

可是我是个懒人,这几年中,每次想用的时候就要把cpp乱拷,真是麻烦。

于是想试试看 有没有更好的办法。

嗯,我发现最简单的还是修改一下crtdbg.h

查找 _CRTDBG_MAP_ALLOC

#ifdef _CRTDBG_MAP_ALLOC

inline ...

inline ...

#endif

 

嗯,在这个#endif 上面加上:

#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)

嗯,赶快试试看。

原理,原理,哦,原理就是

平常我们喜欢写  new XXX

那么现在用宏换成 new(_NORMAL_BLOCK,__FILE__,__LINE__)    XXX

原创粉丝点击