簡體   English   中英

錯誤:當變量是常量時,表達式必須具有常量值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM