何为柔性数组

c99中

 结构中的最后一个元素允许是未知大小的数组 这就叫做柔性数组成员。

但结构中的柔性数组前面必须至少一个其他 成员,柔性数组成员允许结构中包含一个大小可变的数组.

sizeof返回的这种结构大小不包括柔性数组的内存.

包含柔数组成员的结构用malloc函数进行内存的动态分配,且分配的内存应该大于结构的大小 以适应柔性数组的预期大小.

 柔性数组到底如何使用:例子:

typedef struct st_type

{

int i; int a[0];

}type_a;

有些编译器报错无法编译可改成:

typedef struct st_type

{

int i; int a[];

}type_a;

你可能感兴趣的:(c,struct,编译器)