【发布时间】:2023-03-13 00:17:02
【问题描述】:
我正在尝试打印一个空的井字游戏表,但是当程序到达第二个 for 循环时它崩溃了。
void pBoard(char board[3][3])
{
int i;
int j;
printf(" 0 1 2");
for (i = 0; i < SIZE; ++i){
printf("\n%d ", i); //After this it crashes
for (j = 0; j < SIZE; ++j){
printf("%c ", board[i][j]);
}
}
}
这会打印出来
0 1 2
0
编辑:评论系统似乎不允许我像在这里一样格式化代码。我用
调用了这个函数 while(choice != 'P'){
pBoard(board[3][3]);
player = 'X';
play(board[3][3], player);
if (checkWinner(board[3][3])){
break;
}
player = 'O';
play(board[3][3], player);
if (checkWinner(board[3][3])){
break;
}
}
大小定义为 3。
我在执行过程中收到一条错误消息。
【问题讨论】:
-
请说明您使用哪个参数调用
pBoard,以及如何定义SIZE。 -
当你说“崩溃”时,你会得到堆栈跟踪或错误消息/代码吗?
-
编辑帖子,因为评论很奇怪
-
您需要勾勒出空板的外观。例如,可以用 空格 字符填充空槽。这样一来,在打印您的电路板时只需进行一次移动,您将在某个坐标处获得一个带有单个
X的 2D 输出,其余的将是 空格 字符。 -
否则,
pBoard按预期工作。你可以用板子测试这个:char board[3][3] = {'X', 'O', ' ', 'O', 'X', 'O', ' ', 'O', ' '};,调用pBoard(board);会输出整个板子。
标签: c multidimensional-array char