动态顺序表的一些问题
#include<stdio.h>#include<stdlib.h>
#include<conio.h>
#define Maxsize 10
typedef int Elemtype;
typedef struct
{
Elemtype *elem;
int length;
int listsize;
}Sqlist;
void initSqlist( Sqlist *L)
{
L->elem=(int *)malloc(Maxsize * sizeof(int));
if(!L->elem)
{
printf("Malloc error!\n");
}
L->length=0;
L->listsize=Maxsize;
}
void insertSqlist(Sqlist *L,int i,Elemtype item)
{
Elemtype *base,*p,*insertPtr;
if(i<1||i>L->length)
{
printf("Error!\n");
}
if(L->length>=L->listsize)
{
base=(int *)realloc(L->elem,(L->listsize+10)*sizeof(int));
L->elem=base;
L->listsize=L->listsize+100;
}
insertPtr=L->elem+i-1;
for(p=L->elem+L->length-1;p>=insertPtr;p--)
{
*(p+1)=*p;
}
*insertPtr=item;
L->length++;
}
void DelElem(Sqlist *L,int i)
{
Elemtype *delItem,*p;
delItem=L->elem+i-1;
p=L->elem+L->length-1;
for(++delItem;delItem<=p;++delItem)
{
*(delItem-1)=*(delItem);
}
L->length--;
}
int main(void)
{
Sqlist *L;
int i;
initSqlist(L);
for(i=0;i<15;i++)
{
insertSqlist(L,i+1,i+1);
}
for(i=0;i<L->length;i++)
{
printf("%3d",L->elem[i]);
}
printf("\n");
DelElem(L,5);
printf("\nDelete the fifth number \n");
for(i=0;i<L->length;i++)
{
printf("%3d",L->elem[i]);
}
printf("\n");
return 0;
}
调了半天,还是调不出来,不知道哪里错了,没有编译错误,一运行就崩溃,那位高手赶紧露几手吧,急啊!!!