MFC 中粗劣的检查内存泄漏

在MFC中内存泄漏对程序有很大的隐患,虽然刚开始操作没什么,但是过了几小时,几天,有的甚至要几年才会发现,内存泄漏之后所有内存被占满了,所以一般程序员都会手动去管理MFC的内存,基本都是new一个对象都会去delete来释放掉,有时候忘了怎么办呢?当然有检查的办法,我这里有一种小小的解决办法,一般对不是很大的程序都会有帮助的.
1.在stdafx.h头文件中添加两行代码

//内存泄露检测
#define _CRTDBG_MAP_ALLO
#include <crtdbg.h>

2.在程序退出的地方添加函数,

_CrtDumpMemoryLeaks();

执行程序,如果有内存泄露则可以在调试输出窗口看到如下信息:

Detected memory leaks!  
Dumping objects ->  
tooltip.cpp(394) : {387} client block at 0x00387FE0, subtype c0, 112 bytes long.  
a CToolTipCtrl object at $00387FE0, 112 bytes long  
g:\c++\vc_prac\mfc_prac\pos_system\pos_systemview.cpp(174) : {312} normal block at 0x00387F40, 100 bytes long.  
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD   

能看到泄露的内存分配时候的文件、代码行,等信息
是不是很easy?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容