| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:各位帮我看看 链表 添加元素怎么出现 内存错误?
只看楼主 加入收藏
edward9092
Rank: 2
等 级:等待验证会员
帖 子:329
专家分:59
注 册:2009-1-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
各位帮我看看 链表 添加元素怎么出现 内存错误?
各位帮我看看有什么问题.........
找了 好久总是找不到有什么问题
先谢谢了......

头文件List.h
程序代码:
#ifndef LIST_H_H
#define LIST_H_H
#include <stdio.h>
#include <stdlib.h>
#define ERROR 0
#define OK 1
typedef  int Status;
typedef  char ElemType;
typedef struct List
{
    ElemType data;
    struct List * next;
}LNode, * LinkList;


Status GetElem(LinkList L,int i,ElemType &e);
Status InsertElem(LinkList L,ElemType &e,int i=1);//在链表的第i个位置插入元素e,i默认为0(既插入到链表的第一个位置
Status DeleteList(LinkList &L ,int i,ElemType &e);
LinkList CreateList();
Status AddElem(LinkList L,ElemType e);//在链表的最后添加节点
void print(LinkList &L);
#endif

实现文件 List.cpp
程序代码:
#include "List.h"
LinkList CreateList()
{
    LinkList L;
    L=(LinkList)malloc(sizeof(LNode));
    if(!L)
    {
        printf("内存分配失败!\n");
        return ERROR;
    }
   
    L->next=NULL;
    return L;
}

Status AddElem(LinkList L,ElemType e)
{
    LinkList p=L;
    while(p->next!=NULL)
    {
        p=p->next;
    }
    LinkList New=(LinkList)malloc(sizeof(LNode));
    if(New==NULL)
    {
        printf("New内存分配失败!\n");
        return ERROR;
    }
    New->data=e;
    p->next=New;
    return OK;
}
void print(LinkList &L)
{
    LinkList p=L;
    while(p!=NULL)
    {
        printf("%c\n",p->data);
    }
}

主函数 main.cpp

程序代码:
 #include"List.h"
int main()
{
    LinkList L;
    L=CreateList();
    ElemType ch;
    for(ch='a';ch!='g';ch++)
        AddElem(L,ch);
    print(L);
    getchar();
    return 0;
}

搜索更多相关主题的帖子: 链表 内存 元素 
2009-09-07 21:52
edward9092
Rank: 2
等 级:等待验证会员
帖 子:329
专家分:59
注 册:2009-1-5
收藏
得分:0 
大部分解决好了...
print函数while循环中没有 p=p->next;
AddElem 函数中没有 将New->next置空;
不过还有一个问题..就是  修改以后  怎么输出的第一个是"?" ..
麻烦各位指点了.....
先谢谢了....
2009-09-07 23:01
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:20 
L=CreateList();创建第一个结构体成员data是没赋初值的,输出就是内存里的一个值。
你的'a'是赋给新申请的结构体New的data成员。

努力—前进—变老—退休—入土
2009-09-07 23:19
edward9092
Rank: 2
等 级:等待验证会员
帖 子:329
专家分:59
注 册:2009-1-5
收藏
得分:0 
回复 3楼 UserYuH
谢谢了   懂了

链表真难弄啊...
2009-09-07 23:42
快速回复:各位帮我看看 链表 添加元素怎么出现 内存错误?
数据加载中...
 
   



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

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