我正在尝试在链接列表的倒数第二个位置插入元素...请帮帮我 我创建了一个函数来枚举值1,2,3 ... etc的链表 然后,我有一个要插入第二个函数,然后有一个要显示列表的函数。
#include <stdio.h>
#include<stdlib.h>
struct node{
int data;
struct node *next;
}*head=NULL;
void insert(int x){
int i = 1;
struct node *temp,*temp2=head;
while(x>0){
x--;
temp = (struct node*)malloc(sizeof(struct node));
head->data=i++;
head->next=temp;
head=temp;
}
head->next=NULL;
head=temp2;
}
void insertSecondLast(int x){
struct node *prev,*insert,*temp=head;
insert = (struct node*)malloc(sizeof(struct node));
insert->data=x;
while(head->next!=NULL){
prev = head;
head=head->next;
}
prev->next=insert;
insert->next=head;
head=temp;
}
void display(){
printf("\n[");
while(head->next!=NULL){
printf("%d, ",head->data);
head=head->next;
}
printf("NULL]");
}
int main(void) {
insert(4);
insertSecondLast(100);
display();
return 0;
}
答案 0 :(得分:1)
在插入函数中,您正在取消引用NULL指针(头最初设置为NULL)。操作系统不允许您取消引用NULL地址,因此在运行时会遇到段错误。