声明一个伸缩型数组成员的规则:
1.伸缩型数组成员必须是最后一个数组成员
2.结构中必须至少有一个其他成员
3.伸缩型数组就像普通数组一样被声明,除了它的方括号内是空的
例:
struct flex {
int count;
double average;
double scores[ ];
};
虽然声明了scores[ ];这个数组,但是没有为数组分配任何的存储空间,这就可以使用malloc来为数组分配空间,以存放struct flex结构中的常规内容和伸缩型数组成员需要的任何额外的空间,加入想要用scores表示含有5个double型数值的数组,那么就要这样做:
struct flex * pf;
pf=malloc(sizeof(struct flex)+5*sizeof(double));
而且可以在同一个程序中对伸缩型数组有不同的定义。
例如:
struct flex * pf1,*pf2;
pf1=malloc(sizeof(struct flex)+5*sizeof(double));
pf2=malloc(sizeof(struct flex)+9*sizeof(double));