Я вообще не кодировал C, так что у меня трудности с указателями для 2D-массива. У меня есть 2D-массив 3x3 типа integer.Передача и возврат 2D-массивов в C
Вот мой метод, который я пытаюсь использовать:
void addMoveToBoard(int *gameArray[3][3], int a, int b, int player) {
*((int *)gameArray + x * 3 + y) = player;
if (a == 0) {
mvaddch(a, b, 'X');
}
...
}
А вот мой главный:
int *board[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
addMoveToBoard(board, 0, 0, 1);
Первый вопрос, когда я прохожу нуля для 2-го и 3-го параметров, они не являются 0, когда я использую их в функции. При использовании mvaddch (a, b, 'X') выглядит так, как будто a и b равны 1 вместо 0. Также я правильно назначаю значение элементу в игровом массиве?
'int * board [3] [3]' объявляет массив из трех массивов из трех указателей *. Я подозреваю, что это не то, что вы хотите. – WhozCraig
Пожалуйста, покажите реальный код. И покажите это как [MCVE]. Ваш код ссылается на переменные, которые не определены, такие как 'x' и' y', и ваш код ссылок на вопросы, например 'mvaddch', который даже не отображается. – kaylum