柔性数组内存如何分配

#define _CRT_SECURE_NO_WARNINGS 1

struct S

{

int n;

int arr[0];//柔性数组,前面至少有一个其他成员

};

main()

{

//sizeof返回的这种结构大小不包括柔性数组的内存

printf("%d\n", sizeof(struct S));
//包含柔性数组成员的结构用malloc()函数进行内存的动态分配,
//并且分配的内存应该大于结构体的大小,以适应柔性数组的预期大小

struct S* ps = (struct S*)malloc(sizeof(struct S) + 40);

ps->n = 100;

return 0;

}

优点:malloc次数少,离散的内存碎片少,访问效率高

相关推荐
ValhallaCoder8 小时前
hot100-矩阵
数据结构·python·算法·矩阵
散峰而望8 小时前
【基础算法】穷举的艺术:在可能性森林中寻找答案
开发语言·数据结构·c++·算法·随机森林·github·动态规划
心.c8 小时前
Vue3+Node.js实现文件上传分片上传和断点续传【详细教程】
前端·javascript·vue.js·算法·node.js·哈希算法
散峰而望8 小时前
【基础算法】算法的“预谋”:前缀和如何改变游戏规则
开发语言·数据结构·c++·算法·github·动态规划·推荐算法
We་ct8 小时前
LeetCode 48. 旋转图像:原地旋转最优解法
前端·算法·leetcode·typescript
爱尔兰极光8 小时前
LeetCode--长度最小的子数组
算法·leetcode·职场和发展
仰泳的熊猫8 小时前
题目1432:蓝桥杯2013年第四届真题-剪格子
数据结构·c++·算法·蓝桥杯·深度优先·图论
有一个好名字9 小时前
力扣-电话号码组合
算法·leetcode·职场和发展
鱼跃鹰飞9 小时前
Leetcode会员尊享面试100题:1086:前五科的均分
算法·leetcode·职场和发展
༾冬瓜大侠༿9 小时前
C++string
c语言·开发语言·c++·算法