这节课有点复杂,最好看原课。。
可变数组
· 做一个大小可变的数组。
特点:
· 可以变大。
· 合适的大小。
· 可以访问各个元素。
创建一个函数库
· 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_create
Array array_create(int init_size)
{
Array a;
a.array=(int*)malloc(sizeof(int*)init_size);
a.size=init_size;
return a;
}
array_free
void array_free(Array *a)
{
free(a->array);
a->array=NULL;//保险起见。
a->size=0;
}
可变数组数据访问
int array_size(const Array *a)
{
return a->size;
} //封装
int* array_at(Array *a,int index)
{
return &(a->array[index]);
}
可变数组自动增长
void array_inflate(Array *a,int more_size)
{
int *p=(int*)malloc(sizeof(int)(a->size+more_size));
int i;
for(i=0;i<a->size;i++){
p[i]=a->array[i]
}
free(a->array);
a->array=p;
a->size+=more_size;
}
代码仅供参考。