我在C ++程序中有以下三行代码:
cin >> size;
const int arrsize = size;
int inBoard[arrsize][arrsize];
VS Express给出了以下错误:Error: expression must have a constant value
在最后一行,特别是arrsize
的两个提及。我不明白这一点,因为我宣称arrsize
为const
?这里有什么问题,我该如何避免呢?
答案 0 :(得分:3)
您不能像使用arrsize
那样在堆栈上创建数组,因为它在编译期间不是常量。 arrsize
的值取决于size
,它恰好在运行时获取其值。
解决方案:
std::vector<std::vector<int> >
operator new[]
分配您自己的2D数组(不推荐。严重。)