Похоже, что вы используете n
до того, как его установите, в объявлении board
.Поскольку это неопределенное поведение, абсолютно все разрешено;в этом случае это нарушает значение других переменных.
Чтобы это исправить, вам, вероятно, следует подождать, пока после инициализации n
в scanf
не будет объявлено board
, например:
int main(void) {
int n;
printf("Enter the board dimension: ");
scanf("%d", &n);
char board[n][26];
...
}
Как было отмечено в комментариях, это все равно вызовет проблемы, если n > 26
, и может быть расточительным для n != 26
.Из-за того, как массивы работают в C, исправление, вероятно, потребует переосмысления того, как плата хранится в целом.