微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C中的内存泄漏(通过新删除)

为了使应用程序没有内存泄漏,C项目中的new数量是否与删除数量相匹配?

解决方法

如果你的意思是你在源代码中需要与拥有new的实例相同数量删除实例,那么没有.您可以在多个位置创建对象,但所有这些对象都由同一行代码删除.实际上这是一个常见的习语.

具有不同类型的智能指针通常在用户代码中的许多地方使用许多不同的对象,并将它们从库代码中的单个位置删除.

编辑

从技术上讲,每个成功的内存分配调用都需要与从原始分配调用获取返回指针的dellocation调用匹配.

大多数新表达式导致调用new new,分配内存并在新分配的内存中构造一个对象.使用删除表达式会破坏对象并导致调用运算符删除,该操作将释放已分配的内存.

有一些新的表达式可以在预先分配的内存中构造对象(placement new).这些不应与删除表达式匹配,但可能需要以与原始分配对应的方式释放预分配的内存.

原文地址:https://www.jb51.cc/c/117637.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐