[英]Making a Linked List
typedef struct{
char name[25];
int yearOfBirth;
int district;
char gender;
int age;
CitizenType *next;
}CitizenType;
當我嘗試在Visual Studio中以這種格式制作“鏈接列表”時,出現各種與語法有關的錯誤。 (總共102個),但是當我注釋掉CitizenType * next;時; 我沒有錯誤。 我意識到它與在結構完全聲明之前引用結構有關,但是我不知道如何解決此問題。
在結構之前(與結構分開)聲明typedef。
typedef struct citizen_type CitizenType;
struct citizen_type {
...
CitizenType *next;
};
問題是
CitizenType
僅在結構結束后才進入類型的名稱空間。
因此,只有在聲明新類型后才能使用它。
您可以代替使用struct name
(為struct name
),也可以在使用名稱聲明結構之前聲明類型,如上一篇文章所述。
嘗試這個:
typedef struct node{
char name[25];
int yearOfBirth;
int district;
char gender;
int age;
struct node *next;
}CitizenType;
檢查此堆棧溢出答案以獲取有關C中自引用結構的更多信息。
一個CitizenType不能包含另一個CitizenType,因為它成為無休止的遞歸。
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.