柔性数组内存如何分配

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

相关推荐
luckys.one4 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
~|Bernard|5 小时前
在 PyCharm 里怎么“点鼠标”完成指令同样的运行操作
算法·conda
战术摸鱼大师5 小时前
电机控制(四)-级联PID控制器与参数整定(MATLAB&Simulink)
算法·matlab·运动控制·电机控制
Christo35 小时前
TFS-2018《On the convergence of the sparse possibilistic c-means algorithm》
人工智能·算法·机器学习·数据挖掘
好家伙VCC6 小时前
数学建模模型 全网最全 数学建模常见算法汇总 含代码分析讲解
大数据·嵌入式硬件·算法·数学建模
liulilittle8 小时前
IP校验和算法:从网络协议到SIMD深度优化
网络·c++·网络协议·tcp/ip·算法·ip·通信
bkspiderx9 小时前
C++经典的数据结构与算法之经典算法思想:贪心算法(Greedy)
数据结构·c++·算法·贪心算法
中华小当家呐11 小时前
算法之常见八大排序
数据结构·算法·排序算法
沐怡旸11 小时前
【算法--链表】114.二叉树展开为链表--通俗讲解
算法·面试
tju新生代魔迷12 小时前
数据结构:双向链表
数据结构·链表