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

前端之家收集整理的这篇文章主要介绍了C中的内存泄漏(通过新删除)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为了使应用程序没有内存泄漏,C项目中的new数量是否与删除数量相匹配?

解决方法

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

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

编辑

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

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

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

猜你在找的C&C++相关文章