标签:i++ 使用 code size_t malloc 好处 动态分配 分配 声明
什么是柔性别数组
结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员
例如
typedef struct st_type { int i; int a[0]//柔性数组成员可以调整数组大小 }type_a;
使用方法
struct S { int n; int arr[]; }; int main() { struct S* ps = (struct S*)malloc(sizeof(struct S) + 5 * sizeof(int)); ps->n = 100; for (size_t i = 0; i < 5; i++) { ps->arr[i] = i; printf("%d", ps->arr[i]); } free(ps); ps = NULL; return 0; }
值得注意的是声明的ps大小只有4个字节也就是说arr不占空间 通过malloc 动态分配内存
struct S { int n; int arr[]; }; printf("%d",sizeof(type_a))//大小是4
有2个好处:提高访问速度,方便内存释放
标签:i++ 使用 code size_t malloc 好处 动态分配 分配 声明
原文地址:https://www.cnblogs.com/feizianquan/p/14662896.html