C++使用delete []删除指针?

标签 c++ memory-management

这是 C++ 中的示例代码:

Foo *ptr;
ptr = new Foo;
delete [] ptr;

这会遇到问题吗?删除此类指针并释放内存的正确方法应该是什么?

谢谢

最佳答案

是的,这可能会遇到问题。或不。从技术上讲,它的作用是未定义

每个new 必须恰好有一个delete;每个 new[] 必须恰好有一个 delete[]

在您的特定实例中,正确的代码路径可能是:

Foo *ptr;
ptr = new Foo;
delete ptr;

Foo *ptr;
ptr = new Foo[7];
delete[] ptr;

关于C++使用delete []删除指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18902378/

相关文章:

ios - 在 NSOperationQueue 和 mainQueue 之间传递数据

node.js - 如何在node.js中使用大量内存?

c++ - 如何定位未处理的异常

C++ strcpy内存泄漏

c++ - 使用 Cygwin 在 Netbeans IDE 中运行的基本 C++ 程序出错

iOS:当应用程序进入后台调用电话时,如何防止启动画面显示?

c++ - 使用 copy-and-swap 惯用语,复制对象的析构函数如何不释放指向内存?

c++ - 有没有办法知道二进制文件/文件的特定部分此刻是否在内存中?

c++ - 使用参数化 SetUp()/TearDown() 进行参数化测试

c++ - 为什么在初始化元素多于数组大小时的数组容器时不会出现错误?