BoundsChecker 检查内存泄露

本文通过使用BoundsChecker工具定位并解决了一个由于错误的条件判断导致的内存泄漏问题。在调试过程中,作者发现通过重新编译工程并启用BoundsChecker检测,能够有效地找出程序中存在的内存泄漏位置。

程序跑完一副图片后就少了10几M内存,自己瞄来瞄去,仍然不晓得哪里漏掉了删除指针。

于是想找工具BoundsChecker 来检测一下。

设置了 BoundsChecker 

 

在 Debug 中跑起来看,检查的错误全部都是系统DLL的内存分配冲突,分配与删除不在同一个模块内。

 

困惑中。

后来无意中 在BoundsChecker  的选项中选中 Rebuild All with BoundsChecker  ,把整个工程build一下,再debug的时候就发现好几种其他的错误。其中一个就是 Memory leak,点过去一看,果然是这个问题。

    if( _r!=NULL )
        delete _r;
    _r 
= NULL;

    
if( _g=NULL )  // 就这里错啦,应为:_g!=NULL
        delete _g;
    _g 
= NULL;

    
if ( _b!=NULL )
        delete _b;
    _b 
= NULL;

再运行一次,果然没问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值