我正在努力寻找以下链表实现中的segmentation fault
错误。当我在开头追加或添加时出现错误
请帮助我在哪里做错了
#包括
#include<stdlib.h>
struct node
{
int data;
struct node*link;
};
void append(struct node *p,int num)
{
struct node *temp,*q;
q=p;
temp=(struct node*)malloc(sizeof(struct node));
temp->data=num;
temp->link=NULL;
if(p==NULL)
p=temp;
else
{
while(q->link!=NULL)
q=q->link;
q->link=temp;
}
}
int main()
{
int i,choice,num,pos;
struct node p;
printf("Enter your choice\n");
printf("1-Append\n2-Add At Beg\n3-Add after\n4-Delete\n5-Exit");
scanf("%d",&choice);
while(choice!=5)
{
switch(choice)
{
case 1:printf("Enter the number\n");
scanf("%d",&num);
append(&p,num);
break;
}
printf("1-Append\n2-Add At Beg\n3-Add after\n4-Delete\n5-Exit");
scanf("%d",&choice);
}
}