C 全局结构 : "error: expected expression before ' {' token"

标签 c struct

如何在函数内初始化全局结构?我的代码无法编译并出现以下错误:

expected expression before ‘{’ token
gameState = {0, *emptyBoard};`
            ^

以下是我的代码的相关部分:

typedef struct {
    int turn;
    char board [6][7];
} GameState;

GameState gameState;

int main(void) {
    char emptyBoard[6][7];
    gameState = {0, *emptyBoard};
    return 0;
}

最佳答案

char emptyBoard[6][7]; 不是空板;这是一个未初始化的字符板。要制作一个空板,请将 = { 0 }; 放在声明的末尾 - 尽管如果您的目的只是清除 gameState,则整行代码毫无意义。

gameState 已经零初始化,因为它是一个全局变量,因此您实际上不必在 main 中编写任何内容来重新初始化它。

如果您想稍后将其重置为零,您可以编写:

gameState = (GameState){0};

关于C 全局结构 : "error: expected expression before ' {' token",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079294/

相关文章:

c - 指针内部指针 : How to know easily between two pointer?

objective-c - 从自定义结构中找出函数参数?

java - 起始标签 <td> 未关闭?

c++ - 结构中的字符串赋值

c - 在c中为结构指针数组声明内存

C:输出错误链表和写入和读取文件

c - 如何修复结构返回函数中的 'expected identifier or ' (' before ' int'' 错误

sql - 没有从 SQlite 表中提取任何内容?

C pthread_create

c - 如何比较 Rcpp 和 C 的性能?