#include<stdio.h>
#include<stdlib.h>
#define InitSize 10//默认的最大长度
//定义结构体
typedef struct {
int *data; //指示动态分配的指针
int MaxSize; //顺序表的最大容量
int length; //顺序表的当前长度
} SqList;
//初始化顺序表
void InitList(SqList &L) {
L.data = (int*)malloc(InitSize * sizeof(int)); //用malloc函数申请一片连续的储存空间
L.length = 0; //将顺序表的初始长度设置为0
L.MaxSize = InitSize; //顺序表的初始最大容量定为默认最大长度
}
//增加动态数组长度(增加长度为len)
void IncreaseSize(SqList &L, int len) {
int* p = L.data; //将data的指针值赋给p
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, 8); //调用增长函数,增加的长度为8
return 0;
}
标签:顺序,int,创建,动态分配,MaxSize,len,长度,data
From: https://www.cnblogs.com/qinyu33/p/17840750.html