请大家帮我看看这个关于循环链表的程序为什么出现访问违例(段异常)
seas 2010-06-22 09:59:08 是在DEVC++环境下编译的,编译没有问题,就是运行时出错。
#include<stdio.h>
#include<malloc.h>
typedef struct node
{
char data;
struct node *prior,*next;
}DLink;
void InitList(DLink *L)
{
L=(DLink *)malloc(sizeof(DLink));
L->prior=L->next=L;
}
int GetLength(DLink *L)
{
int i=0;
DLink *p=L->next;
while(p!=L)
{
i++;
p=p->next;
}
return i;
}
int InsElem(DLink *L,char x,int i)
{
int j=1;
DLink *p=L,*s;
s=(DLink *)malloc(sizeof(DLink));
s->data=x;s->prior=s->next=NULL;
if(i<1||i>GetLength(L)+1)
return 0;
while(j<i)
{
p=p->next;j++;
}
s->next=p->next;
s->next->prior=s;
p->next=s;
s->prior=p;
return 1;
}
main()
{
int i;
DLink *LL;
InitList(LL);
InsElem(LL,'a',1);
system("pause");
}