| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1080 人关注过本帖
标题:突发奇想关于链表的衍生问题
取消只看楼主 加入收藏
TIMFannie
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2017-10-15
结帖率:84.21%
收藏
已结贴  问题点数:50 回复次数:3 
突发奇想关于链表的衍生问题
下面两个函数将结构体数组s[]连接成为链表。除了红色字体外,其余都相同。
红色字体内,区别只是分别p与p->next两者赋值,为什么后者能连接成完整链表而前者不行。
有哪些要语法束缚着?
struct studentNode *CreateLinkList(struct student s[], int n)
{
   
   struct studentNode *head=null,*p=null;
   head=(studentNode *)malloc(sizeof(struct studentNode));
    if(n<1)return null;
      head->birth=s[0].birth;
     for(int j=0;j<10;j++)         
     head->name[j]=s[0].name[j];
    p=head;
    for(int i=1;i<n;i++)
   {
    p->next=(struct studentNode *)malloc(sizeof(studentNode));
      p->next->birth=s[i].birth;
     for(int j=0;j<10;j++)         
     p->next->name[j]=s[i].name[j];
    p=p->next;
    }
    p->next=null;

   return head;

}

正确


struct studentNode *CreateLinkList(struct student s[], int n)
{
   
   struct studentNode *head=null,*p=null;
   head=(studentNode *)malloc(sizeof(struct studentNode));
    if(n<1)return null;
      head->birth=s[0].birth;
     for(int j=0;j<10;j++)         
     head->name[j]=s[0].name[j];
    p=head->next;
    for(int i=1;i<n;i++)
   {
    p=(struct studentNode *)malloc(sizeof(studentNode));
      p->birth=s[i].birth;
     for(int j=0;j<10;j++)         
     p->name[j]=s[i].name[j];
    p=p->next;
    }
    p=null;

   return head;

}

错误
搜索更多相关主题的帖子: struct int head null name 
2018-01-11 15:09
TIMFannie
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2017-10-15
收藏
得分:0 
问了好些问题,终于意识到核心迷惑点
2018-01-11 15:10
TIMFannie
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2017-10-15
收藏
得分:0 
拜托大家了
2018-01-11 15:11
TIMFannie
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2017-10-15
收藏
得分:0 
回复 4楼 吹水佬
奥,p=()malloc()给p分配新地址与p=p->next的后者无关,懂了
2018-01-11 15:52
快速回复:突发奇想关于链表的衍生问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015331 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved