[英]Error: Expression must have a constant value, when variable is constant?
我在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數組(不推薦。嚴重。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.