这是 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/