Cooper__D
Cooper__D
采纳率100%
2019-02-10 19:48 阅读 475

为什么用while循环至链表某尾时程序不再运行?

void list_smax(lnode *first)//first为链表的首个节点,该函数的目的是找到链表中成员square值最大的节点
{
lnode *p,*s;
int i;
p=first;
s=first;
while(s!=NULL)
{
if(p->squaresquare)//square为链表节点中float类型的成员
p=s;
s=s->next;
printf("%d\n",i);
i++;
}
printf("面积最大项为:\n");
printf("%-18s%-10s%5.3f%12d\n",p->add,p->name,p->square,p->num);
}

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2019-02-11 00:53

    看下链表的初始化
    malloc分配之后,有没有默认把next指针设置为NULL
    怀疑最后一个以后有野指针,导致while(s!=NULL)没有办法停止。

    点赞 1 评论 复制链接分享

相关推荐