#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int *array;
int size;
} Array;
Array array_create(int size) {
Array a;
a.size=size;
a.array = (int*)malloc(a.size*sizeof(int));
return a;
}
int array_size(Array *a){
return a->size;
}
int *array_at(Array *a, int index){
return &(a->array[index]);
}
void array_extend(Array *a, int add_size){
a->size+=add_size;
int *p=(int *)malloc(a->size*sizeof(int));
int i;
for(i=0;i<a->size;i++){
p[i]=a->array[i];
}
free(a->array);
a->array=p;
}
void array_free(Array *a){
free(a->array);
a->array=NULL;
a->size=0;
}
int main() {
// 创建一个包含100个元素的数组
Array a = array_create(100);
// 打印数组的大小
printf("%d\n",array_size(&a));
// 设置数组的元素
int i;
for (i=0; i<array_size(&a); i++){
*array_at(&a,i)=i*10;
}
// 打印索引为99的元素
printf("%d\n",*array_at(&a,99));
// 扩展数组的大小
array_extend(&a, 20);
// 打印数组的大小
printf("%d\n",array_size(&a));
// 设置索引为119的元素
*array_at(&a,119)=369;
// 打印索引为119的元素
printf("%d\n",*array_at(&a,119));
// 释放内存
array_free(&a);
// 返回
return 0;
}
C语言-可变数组
最新推荐文章于 2024-03-21 08:14:03 发布
本文详细介绍了如何使用C语言创建、操作动态数组,包括数组创建、大小获取、元素设置、数组扩展以及内存释放的过程。
摘要由CSDN通过智能技术生成