1

我在 C++ 程序中有以下三行代码:

cin >> size;
const int arrsize = size;

int inBoard[arrsize][arrsize];

VS Express 给了我以下错误:Error: expression must have a constant value在最后一行,特别是在两次提到arrsize. 我不明白这一点,因为我声明arrsizeconst? 这里有什么问题,我该如何避免?

4

1 回答 1

3

您不能像使用arrsize大小一样在堆栈上创建数组,因为它在编译时不是恒定的。的值arrsize将取决于size,它恰好在运行时获取它的值。

解决方案:

  • 使用std::vector<std::vector<int> >
  • 分配您自己的二维数组operator new[](不推荐。认真。)
于 2013-05-19T23:32:40.347 回答