Raw 转 Dng内存泄露问题 dng_sdk

      问题是这样的,前面文章有介绍过怎样从RAW转dng,包括工程配置,配置库编译方法以及如何写dng,原来测试的时候由于图片很少,转换的时候没有注意到内存泄露问题,领导航拍弄了3000多张的raw图需要转成dng,这下问题来了,任务管理器的内存眼看着上升,直到直接卡死,因为dng的类指针采用的都是智能指针,所以以为自己申请的空间释放掉就可以了,但是AutoPtr<dng_image>image(new dng_simple_image(bounds,planes,pixelType,memalloc));声明的语句,如何也释放不掉了,寻寻觅觅寻寻觅觅,删除各种东西,改写人家的析构函数,就是删除不掉,整整找了大半天,咋么也搞不定,上火啊……最讨厌的就是内存泄露,内存泄露尤其讨厌的是指针导致的内存泄露,寻寻觅觅无处,上火无数,只有改变思路了。

     首先,有new和malloc必须要有delete和free,智能指针声明函数中有new,就必须delete,但是要delete谁呢?image?不对,要看image指针的内存最后直到哪里去了,一开始找不到,就在最下面各种删除,没有效果。改变思路:申请的地方delete一下,有释放掉,说明delete就可以了,不需要什么析构函数。下一个传到那去了,delete一下,有释放掉,依次找或者直到自己的指针最终指向哪里了,直接在最后的时候delete就可以了。raw转dng,dng_negative *negative = host.Make_dng_negative();negative写dng,所以最终的指针就是negative了,在最后delete negative就行了。

     

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值