所以我正在为战舰制作游戏板,但我正在尝试使用结构来制作它。目前我在尝试创建游戏板时遇到错误。我试图这样做,以便当用户输入船只的坐标时,或者当他们进行移动时,我可以轻松地更改符号并获得阵列上的正确坐标。这就是我现在正在使用的。我使用的是3种文件格式,因此我将所有部分放在下面。
我可以在不使用结构的情况下创建电路板,但我很确定我需要以这种方式创建它,以便我以后能够操作电路板。
如果这有助于这是我当前的错误:运行时检查失败#3 - 正在使用变量'person'而未初始化。
这是在头文件
中System.out.println(idx); //idx = 0;
backward(idx+1); //its changed idx = 0 but passed 1 to this function
System.out.print(str.charAt(idx));//After all recursion call here idx =0
功能
typedef struct game_board
{
int board[10][10];
int row;
int col;
char symbol;
}Game_Board;
Game_Board initalize_game_board(Game_Board player);
在主要功能
中Game_Board initalize_game_board(Game_Board player)
{
int row_index = 0, col_index = 0;
printf(" 0 1 2 3 4 5 6 7 8 9\n");
for (row_index = 0; row_index < player.row; row_index++)
{
printf("%d ", row_index);
for (col_index = 0; col_index < player.col; col_index++)
{
player.board[row_index][col_index] = player.symbol;
printf("%c ", player.board[row_index][col_index]);
}
printf("\n");
}
}
答案 0 :(得分:1)
您需要两个函数的return语句。为main()结束paren。
强烈推荐
computer.symbol = '~';
而不是
strcpy(computer.symbol, '~');
答案 1 :(得分:1)
基于Ryan的答案,strcpy()假设源字符串有一个空终止符,以便知道要复制多少个字符。在您的情况下,源字符串中没有空终止符。 strcpy()不会停止复制,直到从内存中读取空字符。由于您使用的是单个字符,因此可以使用简单的赋值语句!
另外,在函数initalize_game_board()中,考虑将指针传递给Game_Board结构,而不是结构本身。执行此操作时,您可以通过在函数本身中使用箭头( - &gt;)运算符来更改实际结构的内容(在这种情况下为struct&#39; person&#39;)。然后,您不必从此函数返回结构。使用您当前的设计,您将创建结构的临时副本,然后填充它,然后(可能在修改之后!)返回该结构,该结构将再次复制到结构“人”中。