可变数组

1 Array array_create(int int_size);//创建数组
2 void array_free(Array *a);//回收数组
3 int array_size(const Array *a);//告诉我们数组中有多少个单元可以用
4 int* array_at(Array *a,int index);//访问数组某个单元
5 void array_inflate(Array *a,int more_size);//让数组长大
//创建数组
1
Array array_create(int init_size) 2 { 3 Array a; 4 a.array=(int*)malloc(sizeof(int)*init_size); 5 a.size=init_size; 6 return a; 7 }
1 //回收数组
2 void array_free(Array *a)
3 {
4     free(a->array);
5     a->array=NULL;
6     a->size=0;
7 }
1 //封装
2 int array_size(const Array *a)
3 {
4     return a->size;
5 }
1 int* array_at(Array *a,int index)
2 {
3     return &(a->arra[index]);
4 }
 1 void array_inflate(Array *a,int more_size)
 2 {
 3     int *p=(int*)malloc(sizeof(int)(a->size+more_size));
 4     int i;
 5     for(i=0;i<a->size;i++){
 6         p[i]=a->array[i];
 7     }
 8     free(a->array);
 9     a->array=p;
10     a->size+=more_size;
11 }

 

posted @ 2023-03-30 23:03  xxxbai  阅读(42)  评论(0)    收藏  举报