| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 246 人关注过本帖
标题:内存报错问题,是否有一个节点是空的啊
只看楼主 加入收藏
紫夜使然
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-9-30
结帖率:0
收藏
已结贴  问题点数:5 回复次数:2 
内存报错问题,是否有一个节点是空的啊
#include"stdio.h"
#include "malloc.h"
#include "stdlib.h"
#define ok 1
#define NULL 0
typedef    int Status;
typedef   int Elemtype;
typedef struct lnode{

    Elemtype a;
    struct lnode *next;
}lnode;

lnode *creat(void)
{
    lnode *head ,*p;
    head=(lnode *)malloc(sizeof(lnode));
    p=head;
    p->next=(lnode *)malloc(sizeof(lnode));
    p->a=2;
    p=p->next;
    p->next=(lnode *)malloc(sizeof(lnode));
    p->a=4;
    p=p->next;
    p->next=(lnode *)malloc(sizeof(lnode));
    p->a=31;
    p->next=NULL;
    return head;
}

//********************

Status destory (lnode *l){

    lnode *p=l,*q=l->next;

    for( ;p!=NULL; q=q->next)
    {
       free(p);
       p=q;
    }
    return ok;
}



void  show(lnode *head)                  //s1:接收头结点
{                                      
   lnode *p;                             //s2:定义一个指针
   p=head;                               //s3:将头结点传给指针p
   for(;p;p=p->next)                     //s4:判断节点是否为空,节点下移
   printf("%d    ",p->a);              //s5:输出节点内容
}





void main()
{
   
    lnode *head;
    head=creat();
   

    show(head);
    destory(head);
}

内存报错是什么原因啊?帮解决下,谢谢啦!
搜索更多相关主题的帖子: include next 
2012-09-30 09:08
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:3 
p->next=(lnode *)malloc(sizeof(lnode)); // 下面你又把这个节点置为NULL,不就造成内存泄露了吗?这句应该删掉。
p->a=31;
p->next=NULL;

for( ;p!=NULL; /* 当q=0时,q=q->next就出现空指针错误了 */)
{
    q=q->next; // 改到这来就正确了。
    free(p);
    p=q;
}

My life is brilliant
2012-09-30 10:31
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
lz 版主v5。
2012-10-01 10:14
快速回复:内存报错问题,是否有一个节点是空的啊
数据加载中...
 
   



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

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