[C语言]柔性数组

目录

        1.柔性数组 

        2.柔性数组的特点

         3.柔性数组的使用


 

        1.柔性数组 

                柔性数组存在于结构体中,当结构体最后一个成员元素为一个未知大小的数组,则称其为柔性数组。         

struct s
{int a;char arr[];//柔性数组
};

        2.柔性数组的特点

                1. 结构中的柔性数组成员前面必须至少一个其他成员
                2.sizeof 返回的这种结构体大小不包括柔性数组的内存
                3.包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小

struct s
{int a;char arr[];
};
int main()
{printf("%d", sizeof(struct s));return 0;
}

                                                        打印结果

         3.柔性数组的使用

struct s
{int a;char arr[];
};
int main()
{struct s* p = malloc(sizeof(struct s) + 10 * sizeof(int));//开辟空间for (int i = 0; i < 10; i++)//赋值给柔性数组成员arr{p->arr[i] = 'a';}free(p);//释放空间return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部