# include<stdio.h>
# include<stdlib.h>
#define InitSize 10 // 默认最大长度
// #define MaxSize 10 // 定义最大长度
typedef struct {
int *data; // 指示动态分配数组的指针
int MaxSize; // 用静态的 “数组” 存放数据元素
int length;
}SqList;
void InitList (SqList *L)
{
// for (int i = 0; i < MaxSize; i++)
L->data = (int *) malloc (InitSize *sizeof(int));
L->MaxSize = InitSize;
L->length = 0; // 顺序表初始长度为 0
}
void IncreaseSize(SqList *L, int len)
{
int *p = L->data;
L->data = (int *) malloc((L->MaxSize+len)*sizeof(int));
for(int i=0;i<L->length;i++)
{
L->data[i] = p[i]; // 将数据复制到新区域
}
L->MaxSize = L->MaxSize + len; // 顺序表最大长度增加 len
free (p); // 释放原来的内存空间
}
int main()
{
SqList L; // 声明一个顺序表
InitList(&L); // 初始化顺序表
IncreaseSize(&L,5);
for(int i =0;i<L.MaxSize;i++)
{
printf("data[%d]=%d\n",i,L.data[i]);
}
return 0;
}