c ++ Structure Arrays - «В этом объявлении нет класса хранения или спецификатора типа» - PullRequest
0 голосов
/ 04 июля 2018

У меня проблемы с массивами структур. у меня есть код, который выдает 2 красные строки ошибок.

    struct frequents
{
    int count;
    char letter;
};

frequents testArray[2];
testArray[1].letter = 'v';   

Ошибка появляется в testArray с ошибкой объявления и в «.» который упоминает, что он ожидал ';'.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Это заявление :

testArray[1].letter = 'v';

Операторы должны выполняться внутри функций (тела функции), а не в каком-либо произвольном глобальном пространстве имен, как у вас сейчас. Переместите ваше утверждение в основную программу функция точки входа , лямбда , отдельная функция или класс тело функции-члена.

В качестве альтернативы, используйте агрегатную инициализацию для инициализации массива:

frequents testArray[2] = {{ 1, 'a' }, { 2, 'b' }};

или без дополнительных скоб:

frequents testArray[2] = { 1, 'a', 2, 'b' };
0 голосов
/ 04 июля 2018

Поскольку вы не в функции: замените

testArray[1].letter = 'v';

от

int main() {
    testArray[1].letter = 'v';
    return 0;
}

и все хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...