說一說指針中的結構體指針

之前學大一學c語言鏈表,總遇到結構體指針。當時很不明白爲什麼都要malloc申請空間。
現在覺得,其實沒說是結構體就必須要分配一塊內存。
首先,結構體和int char dobule等等一樣,也是一種數據類型,無非是有點特殊而已;

struct A {};
struct A a; //在棧上分配空間;可以不malloc動態申請內存,CPU會爲這個結構體變量分配內存。

struct A *a ;// 結構體的指針,CPU會爲這個指針開闢內存,但是此時這個大小是4(如果是32位的CPU的話),所以這個空間不足以存儲結構體的數據成員,就會引發錯誤,此時必須要malloc申請一個,結構體類型大小的動態內存,用於數據成員存儲使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章