可变数组

发布于 29 天前  48 次阅读


/*可变数组*/
#inlude<stdio.h>

typedef struct{
	int *array;
	int size;
}Array;//创建一个类似于数组的结构体指针

Array array_create(int init_size){
	Array a;//这个a是用于这个函数在创建了一个Array类型后返回的Array
	a.size = init_size;
	a.array=(int*)malloc(sizeof(int)*init_size);
	return a;//返回创建的Array对象 
} 
Array 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]);
}

int main(){
	Array a=array_create(100);//这里就可以直接使用在array_create()中创建的Array对象了 
	//a在离开main后空间是要被回收的
	//	a变量本身会被自动释放,但是a->array不会被释放
   //	所以在创建以后需要free掉
   printf("%d",array_size(&a));
   *array_at(&a,0)=10;//赋值
   printf("%d\n",*array_at(&a,0)); 
   printf("%d",a.size); 
	return 0;
} 


本当の声を響かせてよ