关于结构体初始化中expected expression before { token的解决办法

今天做了一道顺序表的题目,为了验证我写的函数是否正确,遂扩充代码,补成完整程序,但编译时出现错误。错误部分如下:

typedef struct{
	int data[10];
	int length;
}SqList; 
SqList La,Lb,Lc;
La.data[10] = {1,3,5,7,9};
La.length = 5;
Lb.data[10] = {2,4,6,8,10};
Lb.length = 5;
Lc.data[10] = {};
Lc.length = 0;
[Error] expected expression before '{' token
[Error] expected expression before '{' token
[Error] expected expression before '{' token

可以看到,结构体定义之后再对数组进行初始化,是不能用{}进行赋值的。
解决方法有两个:
方法一——定义结构体时进行初始化:

SqList La = {{1,3,5,7,9},5};
SqList Lb = {{2,4,6,8,10},5};
SqList Lc = {{},0};

方法二——逐个赋值:

La.data[0] = 1;
La.data[1] = 3;
La.data[2] = 5;
La.data[3] = 7;
La.data[4] = 9;

或者使用while/for循环结构

for(i=0;i<length;i++){
	La.data[i] = xxx;
	}

猜你喜欢

转载自blog.csdn.net/weixin_43473994/article/details/106313950