VC++内存泄漏的检测与定位

VC++内存泄漏的检测与定位
 
 
本文大部分内容来自网络,只是做了适当的修改和补充,以便更贴近实际应用。
 
一 对于MFC程序
如果检测到存在内存泄漏,退出程序的时候会在调试窗口提醒内存泄漏。例如:
class CMyApp : public CWinApp
{
public:
BOOL InitApplication()
{
int* leak = new int[10];
return TRUE;
}
};
 
产生的内存泄漏报告大体如下:
Detected memory leaks!
Dumping objects ->
c:worktest.cpp(186) : {52} normal block at 0x003C4410, 40 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.
 
双击“输出”窗口中,内存泄漏报告的文字"c:worktest.cpp(186) : {52} normal block at 0x003C4410, 40 bytes long.",或者 在Debug窗口中逻辑按F4(VC++6.0),IDE就帮你定位到引起内存泄漏的对应文件的对应行,也就是这一句:
int* leak = new int[10];
特别地,如果这个new仅对应一条delete(或者你把delete漏写),这将很快可以确认问题的症结。
 
 
 
二 对于非MFC
需要做点工作,剩下的还是由VC++的C运行库去做。也就是说,只要你是VC++程序员,都可以很方便地检测内存泄漏。我们还是给个样例:
#include "crtdbg.h"
inlin
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值