#include <stdio.h>
#include <malloc.h>
typedef struct _soft_array
{
int len;
int array[];//int array[0];两种形式
}SoftArray;
int main()
{
int i = 0;
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;
}
柔性数组是C99的扩展,简而言之就是一个在struct结构里的标识占位符(不占结构struct的空间)。
声明
typedef struct _soft_array
{
int len;
int array[];//int array[0];两种形式
}SoftArray;
大小
可以用sizeof 看看其大小
printf("%d\n",sizeof(SoftArray));//CentOS5.6 32 下输出4