基本的に、以下のコードでは、2次元配列を初期化する関数を持っています。主な関数では、配列のサイズが違う関数をテストしようとします。しかし、私は次のエラーを受け取ります: "エラー:配列型が不完全な要素型を持っています void chessBoard(char board [] []、int length、int width)"と "error:仮パラメータ1の型が不完全です"。 チェスボード(board1、length1、width1);.助言がありますか?2次元配列型エラー
#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幅、チャーボード[] [幅]、int型の長さ)' 'はsizeof( int型) ' - >' sizeof(char) ' – BLUEPIXY
関数の引数に配列があるのは、実際には配列ではなく*ポインタ*であるということです。 'int arr []'のような引数を宣言しても、コンパイラはそれを 'int * arr'として扱います。 –