我正在为即将到来的数据结构考试而学习,我正在处理我的代码问题。当我在Dev C ++中运行它时show_list()没有显示任何内容......当我编译并运行它时linux show_list()工作正常但在此功能之后我的屏幕显示捶打。
这是我的代码
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
char name[100];
int code;
float grd;
struct student *next;
}student;
student *head;
student *tail;
void show_list();
void add_list_end(const student *stud_ptr);
int main()
{
int code;
float grd;
student *ptr,stud;
head=NULL;
fflush(stdin);
printf("Name:");
gets(stud.name);
printf("Code:");
scanf("%d",&stud.code);
printf("Grade:");
scanf("%f",&stud.grd);
add_list_end(&stud);
show_list();
}
void add_list_end(const student *stud_ptr)
{
student *nn;
nn=(student *)malloc(sizeof(student));
*nn=*stud_ptr;
if(head==NULL)
{
head=tail=nn;
return;
}
else
{
tail->next=nn;
tail=nn;
}
}
void show_list()
{
student *ptr;
ptr=head;
while(ptr!=NULL)
{
printf("Name:%s\n",ptr->name);
printf("Code:%d\n",ptr->code);
printf("Grade:%.2f\n",ptr->grd);
ptr=ptr->next;
}
}
答案 0 :(得分:0)
在main()
功能中忘了分配
stud.next = NULL;
因此show_list()
跟随一个不确定的next
指针。