我可以像“delete[]”那样获取动态分配数组的大小吗?

2023-12-09

我想知道如何delete[]知道动态分配数组的大小,并且我发现this问题(还有this微软论坛上的问题,但答案是相似的)。事实证明answer is

它通常存储在您分配的内存之前的“头”段中。

因此,确切的细节是特定于实现的。
在该答案下,其中一条评论询问为什么程序员无法获得这一非常有用的信息,迫使我们传递表示大小的变量。评论得到的答案是

强制分配器存储请求的大小(这样您就不需要自己传递数组大小)可能是一个小负担,但它可能会对可想象的分配器设计产生性能影响

对我来说,考虑到大小应该可以访问,这并不是很有说服力delete[]无论如何。

我的问题:(对于程序员来说)是否有可能以某种方式检索大小?

我知道微软有一种特殊的方式(正如前面提到的微软论坛中指出的那样),但我追求的是标准化的东西。

您可以使用 Microsoft 特定函数 _msize() 来 获取动态分配数组的大小 指针,即使它被传递给另一个函数而不是 进行分配的那个。


如果您使用开源库,那么是的,您可以!只需查找来源,弄清楚如何进行即可。

但这仍然是一个坏主意,因为没有任何保证:实现可能随时改变,并且不能保证即使在 Unix 和 Linux 之间也是可移植的。该数字也可能太大,因为分配更多可能是有利的,例如为了对齐。 这也是不必要的:当你new一个你知道大小的空间。您可以直接传递它,或者将其存储在您控制的某个地方。这并不比通过 malloc 的实现来查找更糟糕。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以像“delete[]”那样获取动态分配数组的大小吗? 的相关文章

随机推荐

  • Spring - 如何对单个资源应用投影?

    我正在尝试对名为的实体类应用投影Institute 我定义了以下投影类 Projection name instituteProjection types Institute class public interface Institute
  • 使用 I-Beacon 的室内导航 - 准确性正在迅速变化

    我正在使用 I Beacon 做一个室内导航应用程序 为此 我使用信标给出的精度 但情况正在迅速改变 由于该值正在变化 因此即使当我处于静态时 必须计算的用户位置的 X 和 Y 坐标也会变化 因此 请帮助我在我不移动时使精度保持不变 提前致
  • 在 Java 中如何在修改对象时迭代该对象? [复制]

    这个问题在这里已经有答案了 可能的重复 Java 高效相当于在迭代集合时进行删除 在java中迭代集合时从集合中删除项目 我正在尝试循环HashMap Map
  • 运行时 GPU 执行还是 CPU 执行?

    我觉得必须有一种方法来编写代码 使其可以在 CPU 或 GPU 中运行 也就是说 我想编写一些具有 例如 CPU FFT 实现的东西 如果没有 GPU 该实现可以执行 但当 GPU 存在时默认为 GPU FFT 我无法提出正确的问题来让互联
  • 我的 JavaScript 代码只打印一行。我需要它打印 10 行,每行 20 个字符。

    这是一个抛硬币随机发生器 我需要打印 10 行 20 列 这就是我被困住的地方 每次我单击按钮时 我的代码似乎都会正确随机化 它显示 20 列 但我似乎无法让它打印第二行 这可能是一些简单的事情 我只是没有抓住 任何事情都会受到赞赏 Jav
  • 确定 viewWillAppear 是来自打开应用程序,还是取消选择模式

    我目前正在初始屏幕上加载应用程序加载数据 在我看来这会发生 我还有一个在此屏幕上弹出的模式 关闭时执行与 viewWillAppear 中加载数据相同的逻辑 如何仅在应用程序打开时加载数据 而不是在模式关闭时加载数据 UIViewContr
  • std::vector 中的数据存储是连续的吗? [复制]

    这个问题在这里已经有答案了 我有一个字符向量 我想将其内容作为 char 传递给另一个函数 void foo boost shared ptr
  • 难以理解/可视化 SICP 流汉明数程序

    我基本上陷入了 SICP 练习 3 56 的困境 问题是这样的 练习3 56 R Hamming 首先提出的一个著名问题是 按升序且不重复地枚举除 2 3 或 5 之外没有质因数的所有正整数 一种明显的方法是简单地测试每个整数反过来看看它是
  • 制作一个循环来形成一个列表?

    def make services routes data routes curr route x split routes routes data service data1 x 1 106 106 1 1 43009 106 2 51
  • C# 将列表与自定义对象进行比较但忽略顺序

    我正在尝试比较两个包含自定义对象的列表 包装在一个对象中 我不关心顺序 但如果列表 1 包含 1 2 3 4 那么列表 2 必须and only包含这些元素 例如 4 2 3 1 基于比较两个 List 对象是否相等 忽略顺序ignorin
  • 如何在 PHP 中实时实现 For 循环

    我想制作一个实时给出结果的脚本 在我的脚本中它有 3 个步骤 第一步是从网页中获取所有链接 我使用 pregmatch all 函数 因为我需要的所有链接都以相同的域开始http example com docs 并从中抓取http tes
  • Windows 中的 64 位和 32 位注册表问题(C# 编程)

    我正在尝试将数据从 Windows 注册表获取到我的软件 但有一件事我遇到了麻烦 如果我的软件在 64 位系统上运行 则注册表路径将为 HKEY LOCAL MACHINE SOFTWARE Wow6432Node AVAST Softwa
  • 将 BigQuery 脚本的结果返回到 Python 客户端

    截至 2019 年秋季 BigQuery 支持脚本编写 这太棒了 我不明白的是BigQuery 的 Python 客户端尚有能力利用这一新功能 例如 运行以下 Python 代码 client bigquery Client QUERY B
  • EF Core,按 UTC 日期的月份和年份分组

    我将所有日期存储为 UTC 并且我需要按月份和年份对实体进行分组 所以我正在这样做 dbContext Tickets Where x gt x Date gt from x Date lt to GroupBy x gt new Year
  • TableView 单元格中 TextView 的可变高度

    我有一个基本的UITableView 我在线填写了一个网络服务 但我找不到一种方法来根据我的高度设置单元格的高度 动态单元格数量 textView 这是我填写单元格的方式 UITextView textView UITextView cel
  • PHP/jQuery - 如何将多维 PHP 数组转换为 JSON 字符串?

    正如标题所述 我正在尝试使用 Bootstrap 的 Typeahead js 它需要像这样的 JSON 字符串 var subjects PHP MySQL SQL PostgreSQL HTML CSS HTML5 CSS3 JSON
  • 如何让图表内容区域占据其可用的最大区域?

    非常简单的问题 如何让图表内容区域占据其可用的最大区域 我正在使用 JavaFX 就我而言 我想要有许多基于 true false 的 AreaChartsyAxis 0 1 不幸的是 我找不到如何使用类似方法更改这些图表的内容高度的解决方
  • 如何使用 Maven 将 JavaFX 项目部署到 EXE?

    我希望这个问题看起来并不基础 但尽管研究了几个小时 我还是找不到任何好的文档 我将 Maven 版本 3 3 9 用于我的 JavaFX 版本 11 0 2 和 JDK 13 0 1 项目 并想要构建一个 EXE 做到这一点最简单的方法是什
  • 如何使用java代码获取USB驱动器序列号或元数据

    我用java准备了一个桌面应用程序 我想通过 Pendrive 或任何其他 USB 驱动器来保护它 但我不知道如何使用java代码读取pendrive或usb驱动器 这样我就可以限制应用程序 请帮助我该怎么做 或者对此有其他想法吗 谢谢 就
  • 我可以像“delete[]”那样获取动态分配数组的大小吗?

    我想知道如何delete 知道动态分配数组的大小 并且我发现this问题 还有this微软论坛上的问题 但答案是相似的 事实证明answer is 它通常存储在您分配的内存之前的 头 段中 因此 确切的细节是特定于实现的 在该答案下 其中一