• C++内存泄露的有效预防方法:谁使用,谁删除 (1.2)


    内存泄露就是new出来的东西没有delete,我们能够这样:创建动态对象的人虽然使用new来创建对象;使用此对象的人负责释放此内存块。


    比如:我和他人共享一个消息队列,他人将消息(new出来的对象)放到消息队列中,他不负责释放;我从消息队列里取消息,我一旦从消息队列里取出一个消息,消息队列里就不再有这个消息,消息的控制权和全部权都在我手上,我在用完之后就应该delete。这样就保证了代码编写的简单话,仅仅要大家都尊周这个简单的方法就能够保证没有内存泄露。


    再比如:ACE中有个ACE_Message_Block,就仅仅见有各种new,但没见到delete,当时看演示样例肿么都认为郁闷,于是自己小心翼翼的delete,搞到最后几次反复delete还把程序搞挂了。尼玛。当时仅仅是知道教程上说要用release方法来释放,如今感觉应该是懂了。由于ACE_Message_Black是使用了消息计数的,所以要用自己的成员方法release方法来释放内存。


    上面仅仅是消息队列使用的一个样例,有些情景没有这么典型。比方,有可能是你自己创建自己使用,自己释放,但仅仅要想着这个原则,就能够非常easy从业务上发觉什么时候该释放了。



    有个Linux的工具能够測试你的程序有没有内存泄露:Linux下C++内存泄露检測工具及用法

  • 相关阅读:
    .gitignore规则不生效的解决办法
    docker使用
    mysql 操作
    outlook转发问题
    我的梦想
    安静与流动
    sql 统计 学生成绩2
    sql 统计 关于学生成绩
    数据库备份
    web 注销回到登录页面
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4297199.html
Copyright © 2020-2023  润新知