为了账号安全,请及时绑定邮箱和手机立即绑定

模仿的,段错误,求解

#include <stdio.h>

#include <malloc.h>

struct stu{

char name[10];

int num;

int garde;

struct stu *next;

};

struct stu *mark()

struct stu *head;

struct stu *p1,*p2;

int n=0;

head=NULL;

p1=p2=(struct stu*)malloc(sizeof(struct stu));

scanf_s("%d,%d",p1->num,&p1->garde);

while(p1->num!=0)

{

n++;

if(n==1)

{

head=p1;

}

else{

p2->next=p1;

}

p2=p1;

p1=(struct stu*)malloc(sizeof(struct stu));

scanf_s("%d,%d",p1->num,&p1->garde);

}

p2->next=NULL;

return head;

}

int main()

{

struct stu *p;

p=mark();

while(p!=0)

{

printf("%d,%d\n",p->num,p->garde);

p=p->next;

}


return 0;

}


正在回答

1 回答

大哥,你忘了给 p1->num 补上取地址运算符 &。即:

scanf_s("%d,%d",p1->num,&p1->garde);

应改为:

scanf_s("%d,%d",&p1->num,&p1->garde);
2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Linux C语言结构体
  • 参与学习       118198    人
  • 解答问题       162    个

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

进入课程

模仿的,段错误,求解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信