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

cin >> size;
const int arrsize = size;

int inBoard[arrsize][arrsize];

VS Express给我以下错误:Error: expression must have a constant value在最后一行,特别是对arrsize的两次提及。我不明白这是因为我将arrsize声明为const吗?这是什么问题,如何解决?

最佳答案

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

解决方案:

  • 使用std::vector<std::vector<int> >
  • operator new[]分配您自己的2D数组(不推荐。严重。)
  • 09-06 05:44