① C語言結構體指針變數初始化
void
RegList(LB
*L)
//初始化線性表(建立頭結點,指針域置為空)
{
L=(LB
*)malloc(sizeof(LB));
L->next=NULL;
}
改成指針的指針
調用的時候RegList(&k);就行了。
void
RegList(LB
**L)
{
*L
=
(LB*)malloc(sizeof(LB));
(*L)->next
=
NULL;
}
② C語言結構體初始化問題
這個結構體中包含三個變數,num
name[20]
c
你的結構體初始化只初始化了
name[20]
其餘倆個變數沒有初始化,所以會報錯
你可以這樣初始化
struct
wo
b(1,"jack",'m');
要注意對結構體中所有變數都要初始化,除非這個變數有預設值
③ C語言結構體里的結構體怎麼初始化
中間又有結構體嵌套,你的格式應該是{{
..{}..},{..{}..},...}
其實一般不這么初始化,定義全局靜態變數或者指針,指針的話通過malloc分配內存,然後通過->訪問結構體成員,靜態變數的通過.訪問成員,然後賦值。
④ C語言結構體里的結構體怎麼初始化
方法是在定義變數的同時給其一初始值。結構體變數的初始化,遵循相同的規律。
簡單變數的初始化形式如下:
數據類型 變數名=初始化值;
例如,定義整型變數a,並給其初始化值10的語句如下
int a=10;
數組的初始化,需要通過一常量數據列表,對其數組元素分別進行初始化,形式如下:
數據類型 數組名稱〔數組長度〕={初始化值1,初始化值2,…, 初始化值n};
例如,定義長度為5的整型數組,並對其初始化的語句如下:
int A[5]={20,21,0,3,4};
結構體變數的初始化方式與數組類似,分別給結構體的成員變數以初始值,而結構體成員變數的初始化遵循簡單變數或數組的初始化方法。具體的形式如下:
struct 結構體標識符
{
成員變數列表;
…
};
struct結構體標識符 變數名={初始化值1,初始化值2,…, 初始化值n };
例如,定義struct Point類型變數,並初始化的語句如下:
struct Point oP1={0.0,0.2,0.3};
struct Point類型變數oP1的三個成員變數的值分別為
oP1.x=0.0,
oP1.y=0.2
oP1.z=0.3
由於定義結構體變數有三種方法,因此初始化結構體變數的方法對應有三種,上面已經介紹了其中的一種形式,其他兩種形式如下:
struct Point
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3}; struct
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3};
在初始化結構體變數時候,既可以初始化其全部成員變數,也可以僅僅對其中部分的成員變數進行初始化。例如:
struct Student
{
long id;
char name[20];
char sex;
}a= {0};
其相當於a.id=0;a.name=「」;a.sex=『\0x0』。
僅僅對其中部分的成員變數進行初始化,要求初始化的數據至少有一個,其他沒有初始化的成員變數由系統完成初始化,為其提供預設的初始化值。