柔性数组内存如何分配

#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次数少,离散的内存碎片少,访问效率高

相关推荐
计算机安禾4 小时前
【数据结构与算法】第23篇:树、森林与二叉树的转换
c语言·开发语言·数据结构·c++·线性代数·算法·矩阵
hnjzsyjyj4 小时前
洛谷 P2015:二叉苹果树 ← 有依赖的背包问题
数据结构·有依赖的背包
温九味闻醉4 小时前
人工智能应用作业1:PPO强化学习算法
人工智能·算法
苏宸啊4 小时前
哈希表开放定址法增删改查简单实现
数据结构·c++
玉小格4 小时前
动态内存管理
数据结构
AnalogElectronic5 小时前
考研408计算机学科专业基础综合 数据结构复习
数据结构·考研·链表
wfbcg5 小时前
每日算法练习:LeetCode 167. 两数之和 II - 输入有序数组 ✅
算法·leetcode·职场和发展
A~MasterYi5 小时前
深入理解 Microscaling (MX) 格式:从浮点基础到共享指数矩阵乘法
算法·矩阵
环黄金线HHJX.5 小时前
《Tuan(拼音字母)⇆团(Group)/&湍(Turbulence)/&双结构链路道/&文字、符号、语言/&源点设计、连接起:人类与自然+AICosmOS》
开发语言·人工智能·算法·编辑器
有时间要学习6 小时前
面试150——第七周
算法·面试·深度优先