| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 432 人关注过本帖
标题:关于动态链表
只看楼主 加入收藏
列车永不停息
Rank: 2
等 级:论坛游民
帖 子:76
专家分:48
注 册:2015-7-31
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:2 
关于动态链表
求大神帮我看看,为什么在输出链表之后程序就没有办法运行下去了。。。。
#include<stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct xx)
void main()
{
    int n=0;
    struct xx
    {
        int id;
        int are;
        struct xx *next;
    };
    struct xx *head,*p1,*p2;
    p1=p2=(struct xx*)malloc(LEN);
    scanf("%d%d",&p1->id,&p1->are);
    head=NULL;
    while(p1->id!=0)
    {
        n=n+1;
        if(n==1)
            head=p1;
        else
            p2->next=p1;
        p2=p1;
        p1=(struct xx*)malloc(sizeof(struct xx));
        scanf("%d%d",&p1->id,&p1->are);
    }
    p1->next=NULL;
    p1=head;
        do
        {
           printf("%d%d",p1->id,p1->are);
           p1=p1->next;
        }while(p1->next!=NULL);
        printf("\nasdads");
}

[ 本帖最后由 列车永不停息 于 2015-7-31 21:22 编辑 ]
2015-07-31 21:07
至尊幽蓝
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2015-7-30
收藏
得分:10 
你在结束链表输入后,只把最后一项的next设为NULL了,没有把这最后的一个结构的指针挂到上一个结构的next上。
所以你应该在p1->next=NULL;的前面或后面加上一句:"p2->next=p1;"。
好了给分。
2015-08-01 11:06
列车永不停息
Rank: 2
等 级:论坛游民
帖 子:76
专家分:48
注 册:2015-7-31
收藏
得分:0 
回复 2楼 至尊幽蓝
解决了
2015-08-02 21:30
快速回复:关于动态链表
数据加载中...
 
   



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

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