链表赋值

NULL_OOK 2001-04-11 09:05:00
//运行到给名字成员赋值时就出错了。源代码如下:




#include "stdio.h"
#include "stdlib.h"



struct stud
{
char name[20];
int age;
int num;
float score;
struct stud *next;
};

struct stud *head,*current,*news;

void ListAll(void);
void EnterNew(void);

main()
{
char ch;
int flag=1;
while(flag)
{
printf("E to enter new\nL to list all\n");
ch=getchar();getchar();
switch(ch)
{
case'e':
case'E':
EnterNew();
break;
case'l':
case'L':
ListAll();
break;
default:flag=0;
}
}
}

void EnterNew(void)//append new data
{
news=(struct stud *)malloc(sizeof(struct stud));
if(head==NULL)
{
head=news;
printf("%s",head->name);
}
else
{
current=head;
while(current->next!=NULL)
current=current->next;
current->next=news;
}


printf("\nEnter name:");

gets(current->name); //error here!!!

current->next=NULL;

}

void ListAll(void)//list the data
{
}


...全文
183 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
NULL_OOK 2001-04-14
  • 打赏
  • 举报
回复
void EnterNew(void)//append new data
{
news=(struct stud *)malloc(sizeof(struct stud));
if(head==NULL)
{
head=news;
printf("%s",head->name);
}
else
{
current=head;
while(current->next!=NULL)
current=current->next;
current->next=news;
}
current=news;//在此加入就可,我看掉了一行...

printf("\nEnter name:");

gets(current->name); //error here!!!

current->next=NULL;

}

smq 2001-04-11
  • 打赏
  • 举报
回复
if(head==NULL)
{
head=news;
current = news; //将current指向链头
printf("%s",head->name);//因为name还未赋值,所以此处容易出错,建议删除本行
}
kkk16 2001-04-11
  • 打赏
  • 举报
回复
当你第一次进入void EnterNew(void)函数时也就是(head==NULL)时还没有确定current指向哪里怎么就可以给current->name赋值呢?错误就在这里。
另外你的struct stud 都可以写成 stud 就可以了。
Cowboy22 2001-04-11
  • 打赏
  • 举报
回复
你只需要在
if(head==NULL)
{
后加:
current=news;
就可以了。


16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧