为什么出错:当我尝试初始化结构变量时,“ {”令牌之前的预期表达式会发生

时间:2018-10-09 09:12:20

标签: c

这是我尝试初始化结构体L时使用的代码:

typedef struct {
    int data[20];
    int length;
} SqList;

SqList L;
L = {
 {1,2,3,4,5},
  5
 };

1 个答案:

答案 0 :(得分:2)

您不是在初始化而是在分配,因为L的声明和分配值是代码中的两个独立语句。

SqList L = {
    {1,2,3,4,5},
    5
};

它应该可以工作。

您以后可以覆盖此初始值,但是请注意,您需要随后分配一个SqList对象,并且该分配必须在函数的上下文中进行:

int main() {
    L = (SqList){ {1,2,3,4,5}, 5 };
}