求助,请问下面代码为什么一运行就死掉了。。。。。
#include "stdafx.h"
#include<iostream>
#include <stdlib.h>
#include<string>
#include <ctype.h>
using namespace std;
#define INIT_LIST_SIZE 20
#define ADATION 10
#define ERROR 0
#define OK 1
#define FAILED 0
typedef int status;
struct Data
{
char sL;
char ss;
int num;
char ot;
int h,j,k,g;
};
typedef struct Sqlist
{
Data *elem;
int listszie;
int length;
}*sq;
status Initlist(sq L)
{
L->elem=(Data *)malloc(INIT_LIST_SIZE*sizeof(Data));
if(!L)return ERROR;
L->length=0;
L->listszie=INIT_LIST_SIZE;
return OK;
}
status Getelm(sq L,int i)
{
Data e;
if(i<0&&i>L->length)
return ERROR;
e.ss=L->elem[i].ss;
e.sL=L->elem[i].sL;
e.num=L->elem[i].num;
e.num=L->elem[i].num;
return OK;
}
status Inputelm(sq L)
{
char c=' ';
int i=0;
int j=0;
while(i<5)
{
while(j<80&&c!='/n')
{cin>>c;
if (c>='a'&&c<='z')
{
L->elem[i].ss=c;
L->elem[i].h++;
}
else if(c>='A'&&c<='Z')
{
L->elem[i].sL=c;
L->elem[i].j++;
}
else if(c>='0'&&c<='9')
{
L->elem[i].num=c;
L->elem[i].k;
}
else
{
L->elem[i].ot=c;
L->elem[i].g++;
}
i++;
L->length++;
}
}
return OK;
}
status Insertelm(sq L,int i)
{
char c;
Data * p,*q;
sq newbase=new Sqlist;
if (i<0)
return OVERFLOW;
if (i>L->listszie)
newbase->elem=(Data *)realloc(L->elem,(INIT_LIST_SIZE+ADATION)*sizeof(Data));
if (!newbase)
return FAILED;
L=newbase;
L->listszie+=INIT_LIST_SIZE;
p=L->elem+i-1;
for (q=L->elem+L->length;p<q;p--)
*(q+1)=*q;
cin>>c;
if (c>='a'&&c<='z')
{
p->ss=c;
p->h++;
}
else if(c>='A'&&c<='Z')
{
p->sL=c;
p->j++;
}
else if(c>='0'&&c<='9')
{
p->num=c;
p->k;
}
else
{
p->ot=c;
p->g++;
}
L->length++;
return OK;
}
status Display(sq L)
{
for (int i =0;i<L->length;i++)
cout<<L->elem->ss;
for (int i =0;i<L->length;i++)
cout<<L->elem->sL;
for (int i =0;i<L->length;i++)
cout<<L->elem->num;
for (int i =0;i<L->length;i++)
cout<<L->elem->ot;
return OK;
}
void main()
{
sq L=new Sqlist;
Initlist(L);
Inputelm(L);
Insertelm(L,3);
Getelm(L,3);
Display(L);
}