各位帮我看看 链表 添加元素怎么出现 内存错误?
各位帮我看看有什么问题.........找了 好久总是找不到有什么问题
先谢谢了......
头文件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;
}








