這裏是我的結構創建鏈表有一個for循環
struct ListItem{
int data;
struct ListItem *next;
};
假設鏈表的第一個節點將有數據= 0,我想寫一個for循環,產生大小的鏈表5,但我不知道如何工作
我嘗試以下
int main(int argc, char* argv[]){
struct ListItem a;
a.data = 0;
for (int i = 1; i < 5; i++){
struct ListItem *pointer = &a;
struct ListItem nextnode;
nextnode.data = i;
a.next = &nextnode;
pointer = pointer->next;
}
}
但結果是 a.data = 0 和a.next->數據= 4
你正在服用的引用到本地(nextnode)後獲得釋放,這樣做是不正確 - 您需要爲您創建的每個節點(和自由它的時候分配內存你完成了)。你熟悉C中的內存分配嗎? –
每次通過循環時,您還將「指針」設置爲鏈接列表中的第一個節點,因此節點0指向節點4(N [0] - > N [4])並不奇怪。內存管理部分雖然是更大的關注。 –