struct Person
{
char name[40];
char phone[20];
struct Person *next;
};
void input(struct Person *person)
{
printf("请输入姓名:");
scanf("%s",person->name);
printf("请输入号码:");
scanf("%s",person->phone);
}
void addPerson(struct Person **person)
{
struct Person *add=NULL;
static struct Person *tail;
add=(struct Person *)malloc(sizeof(struct Person));
if(add==NULL)
{
printf("内存分配失败!");
exit(1);
}
input(add);
if(*person!=NULL)
{
tail->next=add;
add->next=NULL;
}
else
{
*person=add;
add->next=NULL;
}
tail = add;
}
int main(void)
{
struct Person *person;
int ch;
printf("是否录入数据?(输入-1结束录入)")
scanf("%d",&ch);
while(ch!=-1)
addPerson(&person);
return 0;
}
运行了以后会报错Access Violation,提示是addPerson()函数的tail->next=add;语句有问题,有没有大佬能解答一下
C程序,单链表尾插法报Access Violation错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- abcd552191868 2020-12-05 18:24关注
为什么 add=(struct Person *)malloc(sizeof(struct Person));知道申请内存,tail就不知道申请内存?
解决 无用评论 打赏 举报
悬赏问题
- ¥15 孟德尔随机化结果不一致
- ¥20 求用stm32f103c6t6在lcd1206上显示Door is open和password:
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)
- ¥15 keil里为什么main.c定义的函数在it.c调用不了
- ¥50 切换TabTip键盘的输入法