| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 775 人关注过本帖
标题:链表输出问题
只看楼主 加入收藏
dainichuhai
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2005-10-14
收藏
 问题点数:0 回复次数:5 
链表输出问题

main()
{
int i,j;
link head,ptr;
ptr=head=(link)malloc(sizeof(node));
for(i=0;i<5;i++)
{
scanf("%d",&ptr->num);
ptr->next=(link)malloc(sizeof(node));
ptr=ptr->next;
if(i==4)
ptr->next=NULL;
}
printf("\n");
ptr=head;
while(ptr!=NULL)
{
printf("%d\t",ptr->num);
ptr=ptr->next;
}

getch();
}
1 2 3 4 5后回车输出1 2 4 5 -2558
偶搞不明白while语句里哪里出了问题;若将原程序该为while(ptr->next!=NULL)则输出1 2 3 4 5;我觉得改了以后
的输出为1 2 3 4才对,怎么反而就是正确答案了呢
望路过的高手指点一二 谢谢

搜索更多相关主题的帖子: ptr 链表 next head 
2007-06-22 15:02
dainichuhai
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2005-10-14
收藏
得分:0 

1 2 3 4 5后回车输出1 2 3 4 5 -2558
第一行打错了.


2007-06-22 15:03
fyi1106
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-14
收藏
得分:0 

for(i=0;i<5;i++){
scanf(\"%d\",&ptr->num);
ptr->next=(link)malloc(sizeof(node));
ptr=ptr->next;
if(i==4){
ptr->next=NULL;
}
}

你这里分配了五次内存,再加上前面分配了一个,有六个结点存在。而且最后一个结点没有赋值。


[此贴子已经被作者于2007-6-22 21:51:35编辑过]


JavaScript forever!
2007-06-22 21:49
THINKERYE
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-6-9
收藏
得分:0 
楼上是对的,FOR循环中先给一个结点赋值再开辟新结点导致多余了最后一个未赋值的结点

2007-06-22 23:01
gospark
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-6-1
收藏
得分:0 
楼主的程序怎么显示一堆错误啊?            

软硬结合才是发展之路~~~
2007-06-25 02:17
dainichuhai
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2005-10-14
收藏
得分:0 
拉灯老哥说滴对,犯了个傻错误,记住了  谢谢

2007-06-25 22:48
快速回复:链表输出问题
数据加载中...
 
   



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

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