#include <stdio.h>
#include <stdlib.h>
const int BLOCK_SIZE = 20;
//创建结构体
typedef struct {
int *array;
int size;
} Array;
//函数声明
Array array_create(int init_size);
void array_free(Array *a);
int array_size(const Array *a);
int* array_at(Array *a,int index);
void array_inflate(Array *a,int more_size);
//函数
//创建数组
Array array_create(int init_size){
Array a;
a.size = init_size;
a.array = (int*)malloc(sizeof(int)*a.size);
return a;
}
//释放内存
void array_free(Array *a){
free(a->array);
a->array = NULL;
a->size = 0;
}
//封装,获取数组大小
int array_size(const Array *a){//*a 声明a是一个指针变量,传入参数的时候要用&传入地址
return a->size;
}
//查询数组下标对应值
int* array_at(Array *a,int index){
if (index >= a->size){
array_inflate(a, (index/BLOCK_SIZE+1)*BLOCK_SIZE-a->size);
}//如果下标超出数组长度,则把数组增大一个BLOCK
return &(a->array[index]);
}
/*
int array_get(const A