C语言单链表调试报错Program received signal SIGSEGV, Segmentation fault
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
//5取值
int GetElem(LinkList L,int i,int *e1){
int j = 1;
LinkList p = L->next;
while(p && jnext;
j++;
}
if(!p||j>i){
printf("未找到");
return 0;
}
e1 = p->data;
printf("已找到");
return 1;
}
//9前插法
void CreateList_H(LinkList L,int n){
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
int i = 0;
while(imalloc(sizeof(LNode));
printf("请输入要插入的数据");
scanf("%d",&e->data);
e->next = L->next;
L->next = e;
i++;
}
}
//5取值
int GetElem(LinkList L,int i,int *e1){
int j = 1;
LinkList p = L->next;
while(p && j<i){
p = p->next;
j++;
}
if(!p||j>i){
printf("未找到");
return 0;
}
e1 = p->data;
printf("已找到");
return 1;
}
//9前插法
void CreateList_H(LinkList L,int n){
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
int i = 0;
while(i<n){
LinkList e = (LinkList)malloc(sizeof(LNode));
printf("请输入要插入的数据");
scanf("%d",&e->data);
e->next = L->next;
L->next = e;
i++;
}
修改处见注释,供参考:
#include <stdio.h>
#include <stdlib.h>
//结构体
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
//取值
int GetElem(LinkList L,int i,int *e1){
int j = 1;
LinkList p = L->next;
while(p && j < i){ //修改
p = p->next;
j++;
}
if(!p||j>i){
printf("未找到\n");
*e1 = -1; //修改
return 0;
}
*e1 = p->data; //修改
printf("已找到\n");
return 1;
}
//前插法
void CreateList_H(LinkList* L,int n){ //修改
(*L) = (LinkList)malloc(sizeof(LNode)); //修改
(*L)->next = NULL; //修改
int i = 0;
while(i < n){
LNode* e = (LNode *)malloc(sizeof(LNode));
printf("请输入要插入的数据");
scanf("%d",&e->data);
e->next = (*L)->next; //修改
(*L)->next = e; //修改
i++;
}
}