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

时间:2018-08-28 02:05:02

标签: c++ syntax unique-ptr

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

   class PrimeGenerator

{
   private:

          unique_ptr<bool[]> sequence;

          int length;

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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