-1

そこで、アスキーアートのゲームを作ろうと思ったのですが、ボードを宣言すると、「配列型に不完全な要素型があります」というエラーが表示されます。これを修正する方法について何か考えはありますか?

    #include <stdio.h>
#include <stdlib.h>
#include <string.h>

int height = 10;
int width = 12;
char board[][] =            {{'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'},
                             {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'}};

void printBoard(void) {
    int i, j;
    for (i = 0; i < height; i++) {
        for (j = 0; j < width; j++) {
            printf("%c", board[i][j]);
        }
    }
}

int main(void) {
    printBoard();
    return 0;
}
4

3 に答える 3

5

最も外側の寸法のみを未指定のままにすることができます。

配列定義を次のように変更します。

char board[][12] =  { ...};

たとえば、3D 配列を使用している場合も同様です。

char board3D[][12][12] =  { ...}; // OK
char board3D[][][12] =  { ...}; // Not OK
char board3D[][][] =  { ...}; // Not OK
于 2013-05-19T20:15:51.007 に答える
0

多次元配列に項目を動的に追加したいと思いますが、cchar board[][] = では length で指定する必要がありますchar board[][12] =

于 2013-05-19T21:34:19.567 に答える
0

次のように配列を宣言するとうまくいきます。

#define height 10
#define width  12
char board[height][width];

そして、次のように初期化します。

for(i = 0; i < height; i++){
    for(j = 0; j < width; j++){
        board[i][j] = '-';
    }
}

次に、「printBoard()」関数を使用して印刷できます。お役に立てれば!

于 2013-05-19T21:47:51.540 に答える