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