C语言——伸缩型数组成员

来源:互联网 发布:国外发展人工智能吗 编辑:程序博客网 时间:2024/06/04 22:13

声明一个伸缩型数组成员的规则:

        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));
0 0