您好,我正在使用一个变量:
char board[9][9] = {
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, /* Game board */
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}
};
我想做的是使用我的结构,它看起来像这样:
typedef struct {
int adjacent_mines;
bool revealed;
bool is_mine;
char identifier[1];
} Tile;
struct GameState {
Tile tiles[NUM_TILES_X][NUM_TILES_Y];
};
typedef struct GameState GameState;
这样我就可以使用以下函数将角色附加到我的board[][]
:
for (int i = 0; i < NUM_TILES_X; i++) {
for (int j = 0; j < NUM_TILES_Y; j++) {
board[i][j] = tileInfo.tiles[i][j].identifier;
}
}
tileInfo.tiles[i][j].identifier
是这样设置的:
strcpy(tileInfo->tiles[x][y].identifier, "*");
我在控制台上得到的输出是不兼容的指向整数转换的指针从'char [1]'分配给'char'
我该如何解决这个问题,有人可以解释一下发生了什么吗?对不起,如果它很笨,我是 C 和指针的新手
最佳答案
改变
board[i][j] = tileInfo.tiles[i][j].identifier;
到
board[i][j] = tileInfo.tiles[i][j].identifier[0];
标识符是一个大小为 1 的字符数组。board[i][j]
是一个字符
或者将 identifier
的类型更改为 char
因为它的大小是 1
char identifier;
关于使用双矩阵变量将 char 转换为 char[1],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52494256/