1.柔性数组即数组大小待定的数组
2. C语言中结构体的最后一个元素可以是大小未知的数组,而且必须是结构体的最后一个成员
3.C语言中可以由结构体产生柔性数组
4. 此数组不占用结构体的空间,只是作为一个符号地址存在
5.在给结构体分配内存空间时,需要额外增加柔性数组的空间。
typedef struct _soft_array
{
int len;
int array[0]//此处也可以写成int array[]
}SoftArray;
int main()
{
printf("%d\n",sizeof(SoftArray));
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);
system("pause");
return 0;
}
参考 http://blog.chinaunix.net/uid-24174632-id-3303627.html