柔性数组内存如何分配

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

相关推荐
晨非辰1 小时前
数据结构排序系列指南:从O(n²)到O(n),计数排序如何实现线性时间复杂度
运维·数据结构·c++·人工智能·后端·深度学习·排序算法
小曹要微笑1 小时前
STM32H7系列全面解析:嵌入式性能的巅峰之作
c语言·stm32·单片机·嵌入式硬件·算法
寻星探路1 小时前
JavaSE重点总结后篇
java·开发语言·算法
松涛和鸣3 小时前
14、C 语言进阶:函数指针、typedef、二级指针、const 指针
c语言·开发语言·算法·排序算法·学习方法
yagamiraito_5 小时前
757. 设置交集大小至少为2 (leetcode每日一题)
算法·leetcode·go
星释5 小时前
Rust 练习册 57:阿特巴什密码与字符映射技术
服务器·算法·rust
星期天25 小时前
3.0 C语⾔内存函数:memcpy memmove memset memcmp 数据在内存中的存储:整数在内存中的存储 ⼤⼩端字节序和字节序判断
c语言·数据结构·进阶·内存函数·数据内存存储
无敌最俊朗@5 小时前
力扣hot100-141.环形链表
算法·leetcode·链表
WWZZ20258 小时前
快速上手大模型:深度学习10(卷积神经网络2、模型训练实践、批量归一化)
人工智能·深度学习·神经网络·算法·机器人·大模型·具身智能
sali-tec9 小时前
C# 基于halcon的视觉工作流-章62 点云采样
开发语言·图像处理·人工智能·算法·计算机视觉