动态顺序表,能动态分配内存,静态顺序表在编译时已分配内存。 #include <stdio.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=(ElemType *)malloc(MaxSize*sizeof(ElemType)); if(!L->elem) exit(0); L->length=0; L->listsize=MaxSize; } void InsertSqlist(Sqlist *L,int i,ElemType item) { ElemType *base; int t; if(i<1||i>L->length+1) exit(0); if(L->length==L->listsize) { base=(ElemType *)realloc(L->elem,(L->listsize+10)*sizeof(ElemType)); L->elem=base; L->listsize=L->listsize+10; } for(t=L->length-1;t>=i-1;i--) { L->elem[t+1]=L->elem[t]; } L->elem[i-1]=item; L->length=L->length+1; } void DelElem(Sqlist *L,int i) { int t; if(i<1||i>L->length) exit(0); for(t=i;t<L->length;t++) { L->elem[t-1]=L->elem[t]; } L->length--; } void main() { Sqlist list; int i; InitSqlist(&list); for(i=0;i<15;i++) { InsertSqlist(&list,i+1,i+1); } printf("/nThe content of the list is/n"); for(i=0;i<list.length;i++) { printf("%d ",list.elem[i]); } DelElem(&list,5); printf("/nDelete the fifth element/n"); for(i=0;i<list.length;i++) { printf("%d ",list.elem[i]); } while(1); } 编程时出现问题:为什么在main()里定义了Sqlist *plist这个,使用时怎么说未定义?