#include<stdio.h>
#include<stdlib.h>//包含malloc函数和free函数的头文件
#define insize 10//初始长度
#define addsize 5 //增加长度基本单位
typedef struct
{
int *data; //动态分配数组的指针
int maxsize;//顺序表的最大容量
int length;//顺序表的当前长度
}sqlist;
int inlist(sqlist &L)//用malloc函数申请连续的空间
{
L.data = (int *)malloc((insize * sizeof(int))); //使用malloc函数
L.length = 0;
L.maxsize = insize;
}
int addlist(sqlist &L, int len) //增加动态数组的长度,len为需要增加的元素个数
{
int *p = L.data;
L.data = (int*)malloc((addsize + len) * sizeof(int)); //使用malloc函数增加原始的数组长度,addsize为单位增加量
for (int i = 0; i < L.length; i++) //将数据复制到新的区域
{
L.data[i] = p[i];
}
L.maxsize = L.maxsize + len; //顺序表的最大长度length+len个元素
free(p); //使用free函数施放原来的内存空间,因为p是指向原来内存地址的指针
}