struct可以用来创建柔性数组即数组大小待定的数组。
struct _softArray
{
int len;
int array[];
};——柔性数组框架
简单例程:
#include "stdafx.h"
#include "malloc.h"
typedef struct _softArray
{
int len;
int array[];
}softArray;
int main()
{
int i;
softArray* sa = (softArray*)malloc(sizeof(softArray) + sizeof(int) * 10);
sa->len = 10;
for (i = 0; i < sa->len; i++)
{
sa->array[i] = i + 1;
}
for (i = 0; i < sa->len; i++)
{
printf("%d\n", sa->array[i]);
}
free(sa);
return 0;
}
softArray* sa = (softArray*)malloc(sizeof(softArray) + sizeof(int) * 10);的理解:
其实这里的柔性数组并非为可变数组,只是设置了一个较为大的空间来装有可能大小会变的数据,在使用的时候还是要预先设定给数组分配内存。
就到这里啦!