我想编写一个插入列表背面元素的程序。我有以下C ++程序:
#include<iostream>
using namespace std;
typedef struct node {
int val;
node * next;
} node;
int main() {
node * head = NULL;
int i, v[100];
for (i=1; i<=5; i++)
{
cin >> v[i];
}
for(i=1;i<=5;i++)
{
node *temp1=new node;
temp1 = head;
while(temp1->next!=NULL)
temp1 = temp1->next;
node *temp=new node;
temp->val = v[i];
temp->next = NULL;
temp1->next = temp;
}
while(head) {
cout << head->val << " ";
head = head->next ;
}
return 0;
}
问题在于每次我编译它时都会出现分段错误,我不明白为什么。有任何想法吗? 谢谢!
答案 0 :(得分:0)
当您在temp1->next
循环中访问while(temp1->next!=NULL)
时,由于temp1
分配,NULL
已经temp1=head
,导致分段错误。< / p>