"error: 'value' объявлен как другой тип символа" Даже если он никогда не был объявлен повторно - PullRequest
0 голосов
/ 12 июня 2019

Выполняя задание, чтобы сделать игру в крестики-нолики, и так рано я попал в блок.

Компиляторы продолжают кричать на меня, что мой массив был переименован как символ другого типа, дажехотя он был объявлен как не что иное, как массив.

Поскольку я учусь, я надеюсь, что это очевидное исправление.

    char board[4][4];
    printf("Would you like to play a game of tic-tac-toe? (Y or N)\n");
    scanf("%c", &start);
    while(start!=N && start!=n){
        void clearField(char board[4][4]);
        void printField(char board[4][4]);
    }
}
void clearField(char board[4][4]){
    char board[4][4]={{ ,0,1,2},{0,_,_,_},{1,_,_,_},{2,_,_,_}};
}

Ошибка находится со второй до последней строки."доска переименована в другой символ".Что дает?

1 Ответ

2 голосов
/ 12 июня 2019

Внутри clearField() вы действительно объявляете массив с тем же именем, что и аргумент, что не имеет смысла.

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

Кроме того, вы не можете присваивать таким массивам, что наиболее нормальный код будет использовать либо вложенные циклы, либо вызов memset(), я думаю.

Другие странности включают не заключенные в кавычки N и n, с которыми вы сравниваете start, и повторные бессмысленные объявления функций внутри if.

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

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