所以,我决定做一个小型的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;
}
答案 0 :(得分:5)
只有最外层的尺寸可以不指定。
将数组定义更改为:
char board[][12] = { ...};
如果您使用3D数组,则同样适用:
char board3D[][12][12] = { ...}; // OK
char board3D[][][12] = { ...}; // Not OK
char board3D[][][] = { ...}; // Not OK
答案 1 :(得分:0)
我认为您想要动态地向多维数组中添加项目,但在c char board[][] =
中无法使用,您需要在char board[][12] =
长度指定。
答案 2 :(得分: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()”函数将其打印出来。 希望这有帮助!