错误:当变量是常量时,表达式必须具有常量值?

时间:2013-05-19 23:29:52

标签: c++

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

cin >> size;
const int arrsize = size;

int inBoard[arrsize][arrsize];

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

1 个答案:

答案 0 :(得分:3)

您不能像使用arrsize那样在堆栈上创建数组,因为它在编译期间不是常量。 arrsize的值取决于size,它恰好在运行时获取其值。

解决方案:

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