關於結構體初始化中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;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章