模仿的,段错误,求解

来源:5-2 Linux C 动态数据结构-动态链表

丶年少

2018-10-28 17:18

#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回答

  • techboyharry
    2018-11-01 15:27:20

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

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

    应改为:

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

Linux C语言结构体

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

118294 学习 · 162 问题

查看课程

相似问题