-1

所以,我决定做一个小的 ASCII 艺术游戏,但是,当我声明板时,我收到错误“数组类型的元素类型不完整”。关于如何解决这个问题的任何想法?

    #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 回答