考虑以下代码:
typedef SomeType type_t[2];
SomeType * arr1 = new type_t; //new or new[] ???
type_t * arr2 = new type_t[3]; //new or new[] ???
根据标准,第一种和第二种情况(new
或 new[]
)将调用哪个版本的 new
以及如何删除 arr1
和 arr2
(使用 delete
或 delete[]
)?
最佳答案
第一种情况分配一个一维数组,第二种情况分配一个二维数组。它们都必须通过 delete[]
释放,否则你会得到未定义的行为。
关于c++ - new 或 new[] 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5368988/