这样安全吗?
std::unique_ptr<A> ptr(new A[100]);
当 ptr
超出范围并调用其析构函数时,它会错误地删除
指针,还是删除[]
它?
最佳答案
您必须正确指定 unique_ptr
将持有的类型才能正常工作:
std::unique_ptr<A[]> ptr(new A[100]);
这将默认为使用 delete[]
而不是 delete
的删除器。
关于c++ - 带数组指针的 std::unique_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22757412/