BoundsChecker 检查内存泄露

来源:互联网 发布:罗升阳 知乎 编辑:程序博客网 时间:2024/04/29 18:36

程序跑完一副图片后就少了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;

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