В принципе, в приведенном ниже коде у меня есть функция, которая инициализирует двумерный массив. В основной функции я пытаюсь проверить функцию с различными размерами массива. Однако я получаю следующие ошибки: «error: тип массива имеет неполный тип элемента void chessBoard (char board [] [], int length, int width)» и «error: тип формального параметра 1 является неполным». chessBoard (доска1, длина1, ширина1) ;. Какие-либо предложения?Ошибки двумерного массива
#include <stdio.h>
#include <stdlib.h>
void chessBoard(char board[][], int length, int width)
{
for (int i = 0; i < length; i++)
{
for (int j = 0; j < width; j++)
if ((i + j) % 2 == 0)
board[i][j] = 'b';
else
board[i][j] = 'w';
}
}
int main()
{
char board1 [3][4];
int length1 = sizeof board1/sizeof board1[0];
int width1 = sizeof board1[0]/sizeof(int);
chessBoard(board1, length1, width1);
int i, j;
for(i = 0; i < length1; i++)
{
for(j = 0; j < width1; j++)
printf("%c", board1[i][j]);
printf("\n");
}
printf("\n");
}
'недействительная шахматная доска (доска символа [] [], длина INT, INT ширина)' -> 'недействительными шахматной доски (ширина INT, символ доска [] [ширина], длина целое),' SizeOf (int) '->' sizeof (char) ' – BLUEPIXY
Вещь с массивами в аргументах функции состоит в том, что они не являются массивами, а * указателями *. Даже если вы объявляете такой аргумент, как 'int arr []', компилятор рассматривает его как 'int * arr'. –