尝试设置唯一指针布尔数组的值时BAD_ACCESS错误

BAD_ACCESS error when trying to set value of unique pointer boolean array

本文关键字:BAD 错误 ACCESS 数组 设置 唯一 指针 布尔      更新时间:2023-10-16

我不确定这是否是语法问题,但我尝试弄乱声明,似乎无法摆脱错误。以下是头文件中的私有成员变量。

class PrimeGenerator
{
private:
unique_ptr<bool[]> sequence;
int length;

这些声明引来了一个BAD_ALLOCATION错误。我的语法不正确吗?如何声明 unique_ptr 数组的成员?

sequence[0] = 0;
sequence[1] = 0;
sequence[2] = 1;

在您的代码中,unique_ptr<bool[]> sequence;似乎没有任何值可以指向。

unique_ptr<bool[]> sequence{new bool[3]};

您可以尝试使用上面的代码。同样如前所述,智能指针是一个类,它包装了一个"原始"(或"裸"(C++指针,以管理所指向对象的生存期。 使用原始指针,程序员必须在对象不再有用时显式销毁对象。通过比较,智能指针定义何时销毁对象的策略。您仍然需要创建对象,但您不再需要担心破坏它。