2016-01-06 8 views
0

У меня есть ошибка ожидаемого постоянного выражения. Это моя ошибка часть:как изменить значение const int C++

int row=counter/4;  
int goals[row][4];---> this part has error for "row" variable 

как определить «строку» переменную как постоянное значение? или как решить эту проблему?

+1

А как бы вы определили счетчик? – mikedu95

+0

Пожалуйста, опубликуйте [mvce] (http://stackoverflow.com/help/mcve). – skypjack

+0

извините, но это не имеет значения, значение счетчика получается из файла; например, «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ın sonuna Кадар gitme \t \t fscanf (fffile, "% d", &c); \t \t счетчик ++ (feof (fffile)!). – ozz

ответ

2

C++ не позволяет массивы переменного размера. В вашем примере row не является константой и поэтому не может использоваться для указания размера массива.

Чтобы обойти это, вы можете либо переключиться на C (что позволяет такие массивы), либо использовать конструкции C++ - например, std::vector.

Syntaxically правильное изменение было бы перефразировать строки, как

const size_t row = counter/4; 

Но чем вы должны были бы counter сопзЬ, которые вы не смогли бы сделать, если вы получаете его из пользовательского ввода.