以下为代码,编译没问题,一输入数据就停止工作,折腾一下午了,求大神帮忙指点
#include
#include
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define init_size 100
#define listincrement 10
typedef int status;
typedef struct{
status e;
int length;
int listsize;
}sqlist;
void initlist(sqlist L){
L.e = (status)malloc(init_size*sizeof(status));
if(!L.e)exit(OVERFLOW);
L.length = 0;
L.listsize = init_size;
}
void inp(status p,sqlist L){
status e,*q;
scanf("%d",&e);
for(;e!=-1;L.length++){
if(L.length>=L.listsize){
p = (status)realloc(p,(L.listsize+listincrement)*sizeof(status));
}
q=p+L.length-1;
*q = e;
if(!p)exit(OVERFLOW);
continue;
}
return;
}
void outp(sqlist L){
for(int i=1;i<=L.length;i++){
printf("%d",L.e[i]);
}
}
int main(){
sqlist L;
initlist(L);
inp(L.e,L);
outp(L);
return 0;
}