1
我的程序應該創建一個鏈接列表並顯示它。我的問題是當addelemnt_end函數結束時,它不會更新head
和last
。
我試過調試,當我的功能完成時,信息和頭部和尾部的下一部分「無法讀取內存」。退出功能後,節點不保存
struct node{
int info;
node *next;
};
node *head, *last;
void addelement_end(node *head, node *last, int element)
{if (head == NULL)
{ node *temp = new node;
temp->info = element;
temp->next = NULL;
last = temp;
head = temp;
}
else {node*temp = new node;
last->next = temp;
temp->info = element;
temp->next = NULL;
last = temp;
}
}
void show(node* head, node *last)
{
if (head==NULL)
cout << "Empty list";
else
while (head != NULL)
{
cout << head->info << " ";
head = head->next;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int x, n, i;
cout << "how many numbers";
cin >> n;
head = last = NULL;
for (i =1; i <= n; i++)
{
cin >> x;
addelement_end(head, last, x);
}
show(head, last);
return 0;
}
,我應該如何調用該函數?我已經嘗試了很多可能性,每次我得到這個錯誤C2664:'void addelement_end(node **,node **,int)':無法將參數1從'node *'轉換爲'node **' –
@ user3125464給出變量的地址:'addelement_end(&head,&last,x);' –
非常感謝您的幫助,它可以工作。如果你知道用於學習指針的好材料將會很棒。 –