【学习笔记之我要C】柔性数组

简介: 【学习笔记之我要C】柔性数组

一、柔性数组介绍


  柔性数组是C99语法中的一个概念,他允许结构体中最后一个成员是未知大小的数组,这就被称为柔性数组。

typedef struct st_type {
  int i;
  int a[0];//柔性数组成员
}type_a;
typedef struct st_type {
  int i;
  int a[];//柔性数组成员
}type_a;

因为有部分编译器无法编译第一个形式的柔性数组,我们可以第二形式的样子。


二、柔性数组特点


  1. 结构中的柔性数组成员前面必须至少有一个其他成员;
  2. sizeof返回的含有柔性数组结构的大小是不包含柔型数组内存的;
  3. 包含柔性数组成员的结构用malloc()函数进行内存的动态分配,并且分配的内存需要大于结构的大小来适应柔型数组的预期大小。
typedef struct st_type{
  int i;
  int a[0];//柔性数组成员
}type_a;
  printf("%d\n", sizeof(type_a));//4


三、柔性数组优势


  1. 内存释放方便(正常情况下进行二次的内存分配后,需要就行两次内存释放。柔性数组很好的解决了这个问题);
  2. 利于提高访问速度(柔性数组会使空间连续开辟,能够提高访问速度,减少内存碎片)。
目录
相关文章
|
存储 安全 开发工具
深入了解云计算架构:从基础到高级
云计算架构是当今信息技术领域中备受瞩目的话题。它已经在商业、科学和日常生活中发挥了巨大作用,为企业提供了灵活性、可扩展性和效率。本文将深入探讨云计算架构的各个方面,从基础概念到高级特性一一介绍。
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
1202 4
SpringBoot必须掌握的常用注解!
|
4天前
|
云安全 人工智能 算法
以“AI对抗AI”,阿里云验证码进入2.0时代
三层立体防护,用大模型打赢人机攻防战
1319 4
|
4天前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
671 3
|
5天前
|
人工智能 Rust 运维
这个神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
加我进AI讨论学习群,公众号右下角“联系方式”文末有老金的 开源知识库地址·全免费
|
11天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
776 6