結構體中的數組的初始化問題 我的代碼
C/C++ code #include <stdio.h> #include <stdlib.h> struct a { int length; int c[5]; }b; int main() { b.c={1,2,3,4,5}; }
調試時編譯器報錯,求指點
------解決方案-------------------- 你那個結構體屬於全局變量,在進入main之前就已經分配空間了。
{}只能用來來初始化,只有在定義的時候能用。給數組賦值是不能用{}的。
你的代碼應該改成這樣
C/C++ code #include <stdio.h> #include <stdlib.h> struct a { int length; int c[5]; }b={0,1,2,3,4,5};//0是初始化給length的,後面5個是給數組的,要按順序。 int main() { } ------解決方案-------------------- C/C++ code #include <stdio.h> #include <stdlib.h> struct a { int length; int c[5]; }b; int main() { int i; for(i=0;i<5;i++) b.c[i]=i+1; }
------解決方案-------------------- 參考普通的數組 {1,2,3,4,5}這樣的初始化只能在定義的時候
分配空間只能逐個賦值或者用循環賦值
字符組數的初始化同上。。