2015-06-11 2 views
-1

Я пытаюсь запрограммировать игру. В этой игре пользователь должен ввести количество игроков и количество полей этой игры. Я попытался использовать массив, чтобы отслеживать счет всех игроков. Поэтому я сделал int score[abplayers], поэтому для каждого игрока есть разные баллы. Проблема заключается в том, что, когда я пытаюсь определить все баллы в 0. Я пытался с 0.0, но я получаюОшибка с массивом [игроки] = {0.0

error: variable-sized object may not be initialized.

Что я сделал не так?

+0

Пожалуйста, разместите более релевантный код и полный вывод компилятора. – Will

+2

Идентификация языка тоже поможет. –

+0

http://stackoverflow.com/questions/3082914/c-compile-error-variable-sized-object-may-not-be-initialized –

ответ

0

abplayers - переменная, поэтому оценка представляет собой массив с переменным размером. Компилятор не знает, сколько памяти требуется, поэтому отказывается инициализировать его таким образом.

Вы можете сделать это массивом фиксированного размера, или вы можете сохранить его в переменной, но определить функцию для назначения значений, чтобы убедиться, что присвоение не проходит за пределы, abplayer.

+0

Итак, как именно я это делаю. Создать условие, которое делает невозможным использование более высоких чисел или я создаю цикл –

+0

Откуда берутся начальные значения? – donjuedo

0

Во-первых, ваш тип оценки является int, поэтому вы не можете назначить '0.0', вы должны присвоить '0'.

Для инициализации массива вам необходимо создать массив. Поскольку компилятор не знает значения abplayers, он не знает размер массива оценка и не может создать массив.

Решение состоит в том, чтобы инициализировать все баллы до «0», как только пользователи войдут в число игроков.

Смежные вопросы