c++ - 如何在单个删除语句中删除多个动态分配的数组?

标签 c++ pointers dynamic delete-operator

如果我有 3 个指向 double 的指针:

rdf1 = new double [n];

rdf2 = new double [n];

rdf3 = new double [n];

我想用一个delete 语句删除它们。像这样的东西:

delete [] rdf1,rdf2,rdf3;

正确的做法是什么?

最佳答案

不幸的是,这在句法上是正确的:

delete [] rdf1,rdf2,rdf3;

更不幸的是,它并没有按照您的想法行事。它将 , 视为 comma operator ,因此最终仅删除 rdf1(因为运算符 delete 优先于运算符 ,)。

必须编写单独的delete [] 表达式以获得预期的行为。

delete [] rdf1;
delete [] rdf2;
delete [] rdf3;

关于c++ - 如何在单个删除语句中删除多个动态分配的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6694745/

相关文章:

html - 如何用css制作底部有文字的动态图片框?

c++ std::map<std::string, int> 与std::string_view一起使用

c++ - 如何将多个输入存储到列表 C++

c - 为什么我的程序有内存泄漏?

c++ - 使用 GNU/Linux read() 函数的正确方法

Jquery如何在动态创建的元素上绑定(bind)点击事件?

c - 使 C 动态数组泛型

c++ - boost::继承模板类的序列化

c++ - 优化位操作以获取 NOT 值

c++ - 为什么一个代码会产生内存泄漏而另一个不会?