c++ - new 或 new[] 运算符

标签 c++ new-operator delete-operator

考虑以下代码:

typedef  SomeType type_t[2];
SomeType * arr1 = new type_t; //new or new[] ???
type_t * arr2 = new type_t[3]; //new or new[] ???

根据标准,第一种和第二种情况(newnew[])将调用哪个版本的 new 以及如何删除 arr1arr2(使用 deletedelete[])?

最佳答案

第一种情况分配一个一维数组,第二种情况分配一个二维数组。它们都必须通过 delete[] 释放,否则你会得到未定义的行为。

关于c++ - new 或 new[] 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5368988/

相关文章:

c++ - 释放内存错误?

c++ - 删除与运算符删除(和空指针)

c++ - 我是否正确释放了堆中的内存?

c++ - 将私有(private)数据成员添加到 bison 生成的类中

C++ 生成下一个 key

c++ - 如何将 std::vector<std::vector<double>> 转换为 Rcpp::Dataframe 或 Rcpp::NumericMatrix

每个函数中的 Javascript 新对象没有像我想象的那样工作

C++ WinSock 错误 10053

c++ - 如何使用 new 在 C++ 中创建数组并初始化每个元素?

c++ - operator new 可以在施工完成前返回吗?