Я пишу программу Tic-Tac-Toe и пишу функцию для поворота игрока. Я прохожу на доске Tic-Tac-Toe (массив 3x3) в виде указателя, b
. Единственная проблема заключается в том, что в последней строке я получаю ошибку в заголовке."ошибка: индексированное значение не является ни массивом, ни указателем, ни вектором", но почему?
значение индексируются не является ни массивом, ни указателя, ни вектор: b[PlayerCoordsX][PlayerCoordsY] = "x";
Только для тестирования я пытался несколько различных =
значения. Оба символа и числовые значения не устраняют проблему.
Вот сокращенный код с (я надеюсь) являются соответствующими битами:
void PlayerTurn(int *b);
...
int main(void)
{
int Board[2][2];
int (*b)[2][2];
b = &Board;
...
void PlayerTurn(int *b);
...
return 0;
}
void PlayerTurn(int *b)
{
int PlayerCoordsX, PlayerCoordsY;
while ((PlayerCoordsX != 1 || PlayerCoordsX != 2 || PlayerCoordsX != 3) && (PlayerCoordsY != 1 || PlayerCoordsY != 2 || PlayerCoordsY != 3))
{
printf("Enter the X coordinate you would like to use:");
scanf("%i", &PlayerCoordsX);
PlayerCoordsX = PlayerCoordsX - 1;
printf("Enter the Y coordinate you would like to use:");
scanf("%i", &PlayerCoordsY);
PlayerCoordsX = PlayerCoordsY - 1;
}
b[PlayerCoordsX][PlayerCoordsY] = "x";
}
объявить как этот ничтожной PlayerTurn (междунар ** б) б должен быть двойной указатель – Chinna
Почему вы объявить массив 3х3 как 'Board [2] [2]'? Это всего лишь 2x2. – Barmar
Вы не можете позвонить в своей основной функции, как вы делаете – Alexis