【发布时间】:2022-01-11 22:33:43
【问题描述】:
C++ 中delete 和delete[] 运算符有什么区别?
【问题讨论】:
-
您可能会发现这个问题与stackoverflow.com/questions/1913343/… 相关
-
delete 和 delete[] 的问题是我喜欢智能指针的原因之一,并且尽可能使用
vector<>而不是数组。 -
@DavidThornley 如果你使用智能指针,你仍然需要知道你仍然需要知道不要写的意义上的区别,例如
std::unique_ptr<int>(new int[3]),因为它会在数组上调用常规的delete,这是未定义的行为。相反,您需要使用std::unique_ptr<int[]> -
@DavidThornley 当您事先知道大小时,您可能应该使用
std::array,因为它在概念上更符合该用例并且很可能会更快启动。
标签: c++ memory-management delete-operator