new 为数组开辟内容空间的时候,数组大小这个额外的信息是如何存储的? int * p = new int[5]; 指针p 指向的的int 数据地址还是数组大小的地址?

news/2025/9/25 14:11:17/文章来源:https://www.cnblogs.com/TibiFide/p/19111104

new 为数组开辟内容空间的时候,数组大小这个额外的信息是如何存储的? int * p = new int[5]; 指针p 指向的的int 数据地址还是数组大小的地址?

在C++中,使用new int[5]动态分配数组时,数组大小的存储方式和指针指向的地址如下:

1. ‌数组大小的存储机制‌

编译器会在分配的内存块头部额外存储数组长度等元信息(通常位于实际数组元素内存之前),这部分对程序员透明。具体实现方式由编译器决定,可能通过隐藏的头部字段记录分配大小,但标准未明确规定存储格式。

2. ‌指针p的指向‌

int p = new int[5]中,指针p直接指向数组第一个元素的地址(即&p[0]),而非存储数组大小的元数据地址。数组访问通过指针算术运算实现,如p[i]等价于(p + i)。

3. ‌关键区别‌

数组名是常量指针(如int arr[5]),其类型包含数组长度信息(int[5]),而p仅是int*类型指针。 sizeof(数组名)返回整个数组字节数,而sizeof(p)返回指针本身大小(4或8字节)。 动态分配的数组需手动释放(delete[] p),编译器依赖隐藏的元信息确定释放范围。
4. ‌内存布局示例‌

[元数据][p[0]][p[1]]...[p[4]]
↑         ↑
隐藏区域  p实际指向这里

此布局中,程序员仅能访问p指向的元素区域,元数据由内存管理器内部处理。

问题思考:
1. 数组中元数据应该是什么数据类型 ? 目前我们可以通过指针p[] 来访问数据元素,有办法访问到元数据吗?
2. 数组和动态数组释放的时候,是如何获取到元数据的内容的?

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

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

相关文章

Java适配器模式介绍与实现示例 - 指南

Java适配器模式介绍与实现示例 - 指南2025-09-25 14:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

网站建设法规政策高密建网站

正题 比赛链接:https://ac.nowcoder.com/acm/contest/1084#question 成绩 T1:T1:T1:数数 题目大意 给出nnn,求∑i1n∑j1n(i∗j)\sum_{i1}^n \sum_{j1}^n (i*j)i1∑n​j1∑n​(i∗j) 和 ∏i1n∏j1n(i∗j)\prod_{i1}^n\prod_{j1}^n(i*j)i1∏n​j1∏n​(i∗j) 解题…

欧拉函数学习笔记

欧拉函数学习笔记1.定义 先讲一下欧拉函数的定义:欧拉函数 \(\phi(n)\) 定义为不超过 \(n\) 且与 \(n\) 互质的正整数的个数。 \(\phi(n)=\sum_{i=1}^{n}[\gcd(i,n)=1]\) 例子:n = 8:小于 \(n\) 的正整数是 [1, 2, …

PDF论文文字公式提取,翻译与对照代码(自用)

代码1: import redef process_markdown_file(input_file, output_file):# 步骤1: 读取文件并存储为[正文,标签]格式的列表lines = []with open(input_file, r, encoding=utf-8) as f:for line in f:content = line.rst…

福州网站建设招聘信息国外作品集网站

气压计LPS25HB开发----1.轮询获取气压计数据 概述视频教学样品申请源码下载产品特性通信模式速率生成STM32CUBEMX串口配置IIC配置SA0地址设置串口重定向参考程序SA0设置模块地址获取ID复位操作BDU设置设置速率轮询读取数据演示 概述 本文将介绍如何使用 LPS25HB 传感器来读取数…

华为鸿蒙 ArkTS 实战:基于 RelationalStore 的 SQLite 实现本地数据持久化 - 实践

华为鸿蒙 ArkTS 实战:基于 RelationalStore 的 SQLite 实现本地数据持久化 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

ABAP 调用HTTP上传附件中文乱码

问题: ABAP 使用form-data格式,调用HTTP上传文件,文件名中的中文出现乱码 解决: 使用 escape 函数对文件名进行正确的编码转换DATA(lv_encoded_filename) = escape( val = iv_filenameformat = cl_abap_for…

淘宝天猫优惠卷网站建设高端购物网站建设

正则表达式,又称正规表示法、常规表示法(Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学中的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器…

安徽省建设工程信息网站中国外贸网

W...Y的主页😊 代码仓库分享💕 ​ 🍔前言: 今天我们正式进入C篇章,作为学过C语言的同志,继续学习C肯定就不会进行那些与C语言相同的学习,因为C语言的内容在C中也可以正常使用,所…

PDF入参以及模板对应签章图踩坑点 JAR版本为 iText5

模板PDF推荐使用万兴PDF工具破解版调整表单域和表单域名称,入参后的PDF需要设置入参字体和扁平化来保证PDF可以直接显示入参参数。可以防止出现打开PDF显示文本域// OSS上的PDF模板文件URLprivate static final Strin…

从 0 到 1 精通 SkyWalking:分布式系统的 “透视镜“ 技巧全解析

从 0 到 1 精通 SkyWalking:分布式系统的 “透视镜“ 技巧全解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

系统调用brk 和 mmap 有什么不同?

系统调用brk 和 mmap 有什么不同?1. 核心功能差异 ‌brk‌: 通过调整进程堆顶指针(_edata)扩展/收缩堆空间,仅适用于连续内存分配‌。 ‌mmap‌:在进程虚拟地址空间中创建独立映射区域,支持文件/匿名内存映射,…

雷达系统杂波设计与仿真

一、杂波建模方法体系 1. 统计建模方法瑞利分布:适用于低分辨率雷达地杂波,假设散射体数量足够多且无主导散射体 % 瑞利分布仿真代码 sigma = 1.2; % 杂波标准差 clutter = sigma * abs(randn(1,1000));韦布尔分布:…

把网站做成微信小程序网页设计作业设计意图

[css] 异步加载CSS的方式有哪些? 异步加载CSS 说到加载 CSS 这种事儿不是很简单吗?像这样咯: 这不就完事儿了嘛! 这样是没错!但是这样有问题啊——会阻塞渲染!浏览器看到这个标签就会停下手里的活儿&…

国标GB28181视频平台EasyCVR一体化加油站安防视频监控方案与实践

国标GB28181视频平台EasyCVR一体化加油站安防视频监控方案与实践在现代油品销售行业,确保加油站的安全运营和提供优质的客户服务是至关重要的。为了满足这些需求,必须构建一个依托于尖端信息技术的视频监控系统。这一…

JavaScript 沙箱

概述 沙箱可以简单的理解为一个虚拟机,是一个和宿主机隔离的环境,在这个环境中去运行一些不受信任的代码或者应用程序,防止不安全的代码对系统造成损害。 比如我们现在知道某个应用是诈骗软件或者病毒软件,但是我们…

PDF入参以及模板对应签章图踩坑点

模板PDF推荐使用万兴PDF工具破解版调整表单域和表单域名称,入参后的PDF需要设置入参字体和扁平化来保证PDF可以直接显示入参参数。可以防止出现打开PDF显示文本域// OSS上的PDF模板文件URLprivate static final Strin…

网站分页导航廊坊百度快照优化

一、Android抓包方式 对Https降级进行抓包,降级成Http使用抓包工具对Https进行抓包 二、常用的抓包工具 wireshark:侧重于TCP、UDP传输层,HTTP/HTTPS也能抓包,但不能解密HTTPS报文。比较复杂fiddler:支持HTTP/HTTPS…

高性能PCIe 3.0软核,x1~x16,支持EP/RC,AXI4接口,内置DMA控制器,适用ASIC和FPGA

PCIe-AXI-Controller兼容PCI Express Base Specification Revision 3.1,实现PCIe PHY Layer,Data Link Layer以及Transaction Layer的所有功能特性,不仅内置DMA控制器,而且具备AXI4用户接口,提供一个高性能,易于…

使用git clone 批量下载huggingface模型文件

1.选定要下载的模型 以下载moka-ai/m3e-base为例,切换到Files and versions。2.更改下载网页的url 如上图所示,当前要下载模型网页的url为: https://huggingface.co/moka-ai/m3e-base/tree/mainAI写代…