设为首页收藏本站
查看: 422|回复: 8

[提问] c语言链表的一部分代码的问题

[复制链接]
  • TA的每日心情
    开心
    前天 00:23
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2019-10-8 23:06:44 | 显示全部楼层 |阅读模式
    while(pNew->iNumber!=0)
    {
      iCount++;
      if(iCount==1)
      {
        pNew->pNext=pHead;
        pEnd=pNew;
        pHead=pNew;
      }
      else
      {
        pNew->pNext=NULL;
        pEnd->pNext=pNew;    pNew和pEnd不是指向的同一个地址吗?
        pEnd=pNew;                  如果这样循环下去,pEnd->pNext指向的
      }                                         不就是pEnd自己吗? 还是我理解错了?
      pNew=(struct Student")malloc(sizeof(struct Student);
      scanf("%s",&pNew->cName);
      scanf("%d",&pNew->iNumber);
      free(pNew);
      return pHead;
    }
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 42 天

    [LV.5]常住居民I

    发表于 2019-10-9 09:04:34 | 显示全部楼层
    后面的pnew 通过pNew=(struct Student")malloc(sizeof(struct Student); 这一句就形成了一个新的结点,不再是之前的,之前的用pend 标记
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 00:23
  • 签到天数: 11 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-10-9 13:16:29 | 显示全部楼层
    free(pNew);
    return pHead;
    在while外面 打错了

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 00:23
  • 签到天数: 11 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-10-9 13:27:17 | 显示全部楼层
    瘟阳韶疫 发表于 2019-10-9 09:04
    后面的pnew 通过pNew=(struct Student")malloc(sizeof(struct Student); 这一句就形成了一个新的结点,不再 ...

    可是新创的节点在本次循环中并不是pEnd指向的地址啊,那输入的数据只能储存在pNew的地址中,如果想把数据存入链表,不是只能等到下一个循环,让pEnd指向pNew的地址的时候吗?还是说我哪里理解错了?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 00:23
  • 签到天数: 11 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-10-9 15:25:14 | 显示全部楼层
    wyp31 发表于 2019-10-9 08:39
    这是伪代码    不懂

    什么是伪代码?不懂。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    昨天 00:46
  • 签到天数: 142 天

    [LV.7]常住居民III

    发表于 2019-10-10 00:08:48 | 显示全部楼层
    正在学习代码
    看到楼主之后更想努力学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-10-10 09:40
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2019-10-10 09:45:44 | 显示全部楼层
    看到楼主之后更想努力学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    6 天前
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    发表于 2019-10-10 15:40:44 | 显示全部楼层 赞助商
    wyp31 发表于 2019-10-9 08:39
    这是伪代码    不懂

    这是c的部分代码只不过把函数头去了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 00:23
  • 签到天数: 11 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-10-10 21:39:10 | 显示全部楼层
    嗯,问题解决了,代码没错,是我想错了,每次循环输入数据的都是存到下一次循环中的pEnd中,当输入的pNew->iNumber为0时,就停止循环,然后把pNew给释放了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐 上一条 /1 下一条

    红盟社区--中国红客联盟 

    Processed in 0.136721 second(s), 21 queries.

    站点统计| 举报| Archiver| 手机版| 黑屋 |   

    Powered by HUC © 2001-2017 Comsenz Inc.

    手机扫我进入移动触屏客户端

    关注我们可获取更多热点资讯

    Honor accompaniments. theme macfee

    快速回复 返回顶部 返回列表