我有一個「預期常量表達式」錯誤。 這是我的錯誤部分:如何修改一個const int值C++
int row=counter/4;
int goals[row][4];---> this part has error for "row" variable
如何定義像一個恆定值,「行」的變量?或者如何解決這個問題?
我有一個「預期常量表達式」錯誤。 這是我的錯誤部分:如何修改一個const int值C++
int row=counter/4;
int goals[row][4];---> this part has error for "row" variable
如何定義像一個恆定值,「行」的變量?或者如何解決這個問題?
C++不允許可變大小的數組。在你的例子中,row
不是一個常數,因此不能用來指定數組的大小。
要解決此問題,您可以切換到C(允許使用這種數組),也可以使用C++構造 - 例如std::vector
。
Syntaxically正確的改變將改寫行作爲
const size_t row = counter/4;
但比你需要counter
常量,你將無法如果從用戶輸入得到它做的事。
你只能在數組聲明中使用編譯時間常量。
constexpr可以幫助你,
http://en.cppreference.com/w/cpp/language/constexpr
但不是所有的編譯器,尋找這裏的答案:
而且你怎麼樣規定的計? – mikedu95
請發表[mvce](http://stackoverflow.com/help/mcve)。 – skypjack
對不起,但沒關係,計數器的值是從文件中獲得的;像'FILE * fffile; \t fffile = fopen(「C:\\ goals.txt」,「r」); \t int i = 0; \t int j = 0; \t int counter = 0; \t int c = 0; \t而{//dosyanınsonuna遊客gitme \t \t的fscanf(fffile, 「%d」,&c); \t \t計數器++(FEOF(fffile)!);」 – ozz