首页 > 解决方案 > 有没有办法初始化动态创建的二维数组

问题描述

#define ROWS 5
#define COLUMNS 5

int main(void)
{
    bool *p = new bool[ROWS * COLUMNS] = {
        {false, true, false, true, true},
        {true, false, true, false, true},
        {false, true, false, false, false},
        {true, false, false, false, true},
        {true, true, false, true, false}
    };
}

// [Warning] extended initializer lists only available with std=c++11 or-std=gnu++11
// [Error] lvalue required as left operand of assignment

这里有什么问题以及如何解决?

标签: c++

解决方案


您要做的是定义一个一维数组并将其初始化为二维数组,在这种情况下,您应该选择以下之一:

一维数组:

  bool bool_arr[ROWS * COLUMNS] = {
      false, true, false, true, true,
      true, false, true, false, true,
      false, true, false, false, false,
      true, false, false, false, true,
      true, true, false, true, false
  };

二维数组:

bool bool_mat[ROWS][COLUMNS] = {
      {false, true, false, true, true},
      {true, false, true, false, true},
      {false, true, false, false, false},
      {true, false, false, false, true},
      {true, true, false, true, false}
  };

推荐阅读