知识点:
1、柔性数组即数组大小待定的数组
2、C语言的结构体的最后一个元素可以是一个大小未定的数组
3、C语言通过结构体实现柔性数组
1、柔性数组即数组大小待定的数组
2、C语言的结构体的最后一个元素可以是一个大小未定的数组
3、C语言通过结构体实现柔性数组
#include <stdio.h>
#include <stdlib.h> //malloc()函数要用到
typedef struct _soft_array //创建柔性数组的结构体,并且复杂声明为SoftArray
{
int len;
int array[];
}SoftArray;
void create_softarray(SoftArray **sa,int n)//用于初始化柔性数组的函数
{
*sa = (SoftArray*)malloc(sizeof(SoftArray) + sizeof(int) * n);
(*sa)->len = n;
}
void delete_softarray(SoftArray *sa)//用于释放柔性数组内存的函数
{
free(sa);
}
void print_softarray(SoftArray *sa)//用于打印柔性数组中元素的函数
{
int i ;
for(i=0;i< sa->len;i++)
{
printf("%d\t",sa->array[i]);
}
}
int main()
{
SoftArray *sa = NULL;//声明一个SoftArray类型的指针变量sa
create_softarray(&sa,10);//初始化柔性数组sa
int i=0;
for(i=0;i< sa->len;i++)//往柔性数组中填充数据
{
sa->array[i] = i+1;
}
print_softarray(sa);//输出柔性数组的元素
printf("\n");
delete_softarray(sa);//释放柔性数组的内存
return 0;
}