void add1(Node* head)/*运动员报名登记*/
{
Node* move = head;/*创建尾标与头节点相同*/
while (move->next!= NULL)
move = move->next/*下一个结点*/;/*让move成为下一个结点*/
Node* p=(Node*)malloc(sizeof(Node));
p->next = NULL;
printf("输入运动员的姓名:");
scanf("%s", &p->play.name);
printf("输入运动员的学校:");
scanf("%s", &p->play.school);
printf("输入运动员的性别:");
scanf("%s", &p->play.sex);
printf("输入运动员参加的项目:");
scanf("%s", &p->play.item);
/*将学生插入尾部*/
move->next = p;
}
比较一下两段代码
①
void add1(Node* head)/*运动员报名登记*/
{
Node* move = head;/*创建尾标与头节点相同*/
while (move->next!= NULL)
move = move->next/*下一个结点*/;/*让move成为下一个结点*/
Node* p=(Node*)malloc(sizeof(Node));
p->next = NULL;
②
void add1(Node* head)/*运动员报名登记*/
{
Node* move = head->next;/*创建尾标与头节点相同*/
while (move!= NULL)
move = move->next/*下一个结点*/;/*让move成为下一个结点*/
Node* p=(Node*)malloc(sizeof(Node));
p->next = NULL;
①这个创建move是有东西的,有地址的
②这个创建move是一个野指针,head->next没地址