如果我有 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/