有人可以幫我找出下面的代碼的問題。爲什麼我不能在頭後插入節點到C++鏈接列表中?
#include <iostream>
using namespace std;
struct node
{
int a,b;
struct node* next=NULL;
};
node* head=NULL;
void insert(int a,int b)
{
if(head==NULL)
{
head=new node;
head->a=a;
head->b=b;
return;
}
node* cur=head;
while(cur!=NULL)
{
cur=cur->next;
}
cur=new node;
cur->a=a;
cur->b=b;
return;
}
void display()
{
node* cur=head;
while(cur!=NULL)
{
cout<<cur->a<<"\t"<<cur->b<<"\n";
cur=cur->next;
}
}
int main()
{
int i;
for(i=0;i<3;++i)
{
insert(i,i+1);
}
display();
//cout<<h->next->a;
return 0;
}
這是我得到的輸出:
0 1
看來我只能顯示頭節點,沒有被插入之後。如果我嘗試訪問頭後的下一個節點,則會出現分段錯誤。這是爲什麼?
你試過調試?這是你必須學習的一項重要技能。 [這裏是一個簡單的解釋](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/):)祝你好運 – Rakete1111
@ Rakete1111,耶我試過顯示的人所有的節點內容在插入到插入函數後立即生效,但是在顯示和主函數中,它好像是從列表的其餘部分開始分離頭部 –
請注意,您是如何從不在任何地方實際設置下一個變量的? – samgak