#include
#include
#include
#define MAXSIZE 100
typedef struct{
char *name;
char *Num;
}DataType;
DataType re1,re2,re3;
typedef struct{
DataType *data;
int length;
}SeqList;
//初始化
void InitList(SeqList *L)
{
L->data=(DataType*)malloc(sizeof(DataType)*MAXSIZE);
L->length=0;
}
//插入
void InsertList(SeqList *L,DataType e,int i)
{
int j;
if(iL->length+1)
printf("位置错误\n");
if(L->length>=MAXSIZE)
printf("表空间会溢出\n");
//正式插入元素,如果i<=j是真正的插入,所以需要挪动后面的元素给其空出位置
for(j=L->length;i<=j;j--)
L->data[j+1]=L->data[j];
L->data[i]=e;
L->length++;
}
void Output(SeqList *L)
{
int i;
for(i=1;i<=L->length;i++)
printf("%s\t%s\n",L->data[i].name,L->data[i].Num);
printf("\n");
}
void main()
{
SeqList La;//定义L为这种类型表,即数据类型是结构体类型的,并拥有长度。
InitList(&La); //初始化这个顺序表,即动态分配内存并给这个表的长度初始为0
//对结构体变量进行赋值
re1.name="donghe"; re1.Num="15202248150";
re2.name="songxuekai"; re2.Num="15138412255";
re3.name="limingrui"; re3.Num="13549367791";
//对表元素进行赋值
InsertList(&La,re1,1);
InsertList(&La,re2,2);
InsertList(&La,re3,3);
Output(&La);
}
上面的顺序表是没改之前的,我把定义结构体类型时的char *Num;改为 int Num;
然后在下面对结构体变量赋值时 re1.Num="15202248150";改为re1.Num=15202248150,其他两个改为是这样。
结果就出现了错误,不知道哪里的问题,请指教!