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