c语言 :柔性数组与c/c++内存领域的划分

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一 柔性数组
    • (1)什么是柔性数组
      • 1)柔性数组的声明
      • 2)柔性数组的特性
    • (2)柔性数组的使用
  • 二 c/c++内存领域的划分


一 柔性数组

(1)什么是柔性数组

1)柔性数组的声明

c99中规定 在结构体中,如果其最后的一个结构体成员为数组,
且此数组的大小未指定,称其为柔性数组
  声明如下:
struct S {int a;int arr[];
};
//也可以写成这种格式
struct S2
{int a;int arr1[0];};
//在某些编辑器中,支持第一种格式,另外的一些支持第二种格式

2)柔性数组的特性

当对存在柔性数组的结构体求其大小时,不将柔性数组的大小考虑在内
struct S {int a;int arr[];
};
int main(){size_t len = sizeof(struct S);printf("%zd\n", len);return 0 ;
}

在这里插入图片描述

(2)柔性数组的使用

   struct S {int a;int arr[];
};int main(){struct S * ps = (struct S*)malloc(4 + 5 * sizeof(int));//分配一个整型空间与5个元素的整型数组空间assert(ps);for (int i = 0; i < 5; i++) {ps->arr[i] = i;printf("%d\n", ps->arr[i]);}struct S* ps2  = realloc(ps, 30);if(ps2!=NULL){ps = ps2;}free(ps);ps = NULL;return 0 ;
}

在这里插入图片描述
在这里插入图片描述

二 c/c++内存领域的划分

如图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/604028.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++类与对象中(个人笔记)

类与对象中 类的6个默认成员函数1.构造函数1.1特性 2.析构函数2.1特性 3.拷贝构造函数3.1特性 4.赋值运算符重载4.1特性 5.日期类的实现6.const成员6.1const成员的几个问题 7.取地址及const取地址操作符重载 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为…

硬盘容量骤降为0?原因解析与数据恢复秘籍

当我们打开计算机&#xff0c;准备进入日常的工作或娱乐时&#xff0c;突然发现硬盘容量显示为0&#xff0c;这无疑是一个令人头痛的问题。硬盘&#xff0c;作为我们存储重要数据和文件的关键设备&#xff0c;一旦容量显示为0&#xff0c;就意味着我们可能面临数据丢失的风险。…

电视盒子哪个好?2024口碑网络电视盒子排行榜

多年来电视盒子始终占据重要地位&#xff0c;功能上并没有受到影响。在这么多品牌中哪些电视盒子的评价是最好的呢&#xff1f;小编根据各大电商平台的用户评价情况整理了口碑最好的网络电视盒子排行榜&#xff0c;跟着小编一起看看市面上的电视盒子哪个好吧。 TOP 1&#xff1…

什么是产品知识库?中小型企业要怎么搭建?

在日常的工作中&#xff0c;业务信息与产品知识的有效管理对于企业的成长是至关重要的。一份完整且结构化的产品知识库对于中小型企业来说既是高效工具又是增长动力&#xff0c;那么&#xff0c;什么是产品知识库&#xff1f;中小型企业又该如何搭建&#xff1f;接下来让我们详…

纯C语言手搓GPT-2,前OpenAI、特斯拉高管新项目火了

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 「Real men program in C.」 众所周知&#xff0c;大语言模型还在快速发展&#xff0c;应该有…

自动驾驶中的多目标跟踪_第三篇

自动驾驶中的多目标跟踪:第三篇 附赠自动驾驶学习资料和量产经验&#xff1a;链接 在前一节&#xff0c;我们回顾了贝叶斯滤波&#xff0c;并给出了线性高斯条件下的闭式解–卡尔曼滤波。在这一节&#xff0c;我们来讨论杂波背景下的单目标滤波问题。 模型 &#xff08;三&…

【鸿蒙开发】ArkTS和组件

1. 初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性。 当前&#xff0c;ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义了声明式UI描述、自…

安装电脑监控软件能否提高企业信息安全指数?

随着信息技术的飞速发展&#xff0c;企业信息安全问题日益凸显&#xff0c;成为影响企业运营和发展的重要因素。为了提高企业信息安全指数&#xff0c;许多企业开始考虑安装电脑监控软件。然而&#xff0c;这种举措究竟能否有效提升企业的信息安全水平呢&#xff1f;本文将对此…

Vue文档

Vue是什么&#xff1f;为什么要学习他 Vue是什么&#xff1f; Vue是前端优秀框架&#xff0c; 是一套用于构建用户界面的渐进式框架 为什么要学习Vue Vue是目前前端最火的框架之一Vue是目前企业技术栈中要求的知识点Vue可以提升开发体验Vue学习难度较低… Vue开发前的准备 安…

5【PS让图片动起来】系列3-【时间轴 花瓣飘落】

【问题介绍】上章将花瓣拆分为一片片花瓣&#xff0c;现在让这片花瓣【动态】飘落吧~ PS选择“窗口”→ “时间轴” 下方弹出时间轴&#xff0c;其中01:00f就是这个位置为1秒的。中间的0 10f 20f等&#xff0c;为帧速率&#xff0c;也就是一秒的动画时间里有几帧的意思 下图…

L2-025 分而治之

暴力&#xff0c;并查集。 #include<bits/stdc.h> using namespace std; #define int long long const int n1e411; int a,b,c,l,r,d,e,w,g[n],m[n]; vector<int>t[n]; vector<int>s[n]; int find(int x) {if(m[x]!x) m[x]find(m[x]);return m[x]; } sign…

Simple_SSTI_2

Simple_SSTI_2 破解思路 1、启动场景2、用kali的tplmap扫一下 1、启动场景 http://114.67.175.224:18040/ 然后机会发现 页面啥也不是&#xff0c;查看源码后&#xff0c;看了好像又没看 2、用kali的tplmap扫一下 安装tplmap【已安装,可略过】&#xff1a;在kali终端安装git…