我可以删除[]一个指向已分配数组但不指向其开头的指针吗?

2024-04-21

我特别想知道以下情况(我在一些我必须使用的代码中发现的):

SomeClass *ar = new SomeClass[2];
ar++;
delete[] ar;

这段代码似乎工作正常 - 即没有崩溃(win32,用 VS2005 构建)。

这“合法”吗?感觉肯定不对。


不,未定义将任何地址传递给delete未返回new.
这是标准的引用。

§ 3.7.4.2-3

如果释放函数通过抛出异常而终止,则行为是未定义的。提供给释放函数的第一个参数的值可以是空指针值;如果是这样,并且如果释放函数是标准库中提供的函数,则调用无效。否则,提供的值 给操作员delete(void*)标准库中的值应是先前调用任一运算符返回的值之一new(std::size_t) or operator new(std::size_t, const std::nothrow_-t&)在标准库中,以及提供给运算符的值delete[](void*)标准库中的值应是先前调用返回的值之一operator new[](std::size_t) or operator new[](std::size_t, const std::nothrow_t&)在标准库中。

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

我可以删除[]一个指向已分配数组但不指向其开头的指针吗? 的相关文章

  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • Powershell'不被识别为内部或外部命令、可运行程序或批处理文件

    我正在尝试运行 powershell Command 来执行 powershell 文件作为 Visual studio 2013 中的构建后事件 但我越来越 Powershell 不被识别为内部或外部命令 可操作程序或批处理文件 输出窗口
  • 如何配置IdentityServer4的登录UI?

    我找到的 IdentityServer4 使用示例MVC https github com IdentityServer IdentityServer4 Quickstart UI用于登录用户界面 当 OpenIdConnect 隐式客户端
  • 将 ID 自定义到 Firebase 实时数据库 [重复]

    这个问题在这里已经有答案了 我正在使用集成在移动应用和网络面板中的 Firebase 实时数据库 默认情况下 实时数据库上的唯一 ID 以此格式生成 Lup7ey2xRPO9Owm67xM 通过 Firebase 面板创建新寄存器时 我可以
  • 新的 Bootstrap 图标有可用的字体吗?

    来自 Font Awesome 我想使用新的引导图标 https icons getbootstrap com 在我的网络项目中 不幸的是 就我必须插入的代码量而言 包含 Bootstrap 图标似乎更加乏味 我在寻找什么 以图标为例bi
  • perl `require` 对于变量给定的文件

    我想使用一个模块 文件的路径将位于变量中 我尝试使用这段代码 usr bin perl w use strict use Getopt Long my library zipped aid class file GetOptions aid
  • 为什么自定义实现的 VaadinServiceInitListener 不在 vaadin 13.0.2 中监听?

    我想验证用户是否已登录以实现它 我在 vaadin 13 0 2 中找到了名为 VaadinServiceInitListener 的东西 此类用于侦听所有 UI 的 BeforeEnter 事件 以便在允许之前检查用户是否已登录进入任意页
  • Android - FirebaseApp / Firebase-初始化未启动

    我想在我的 Android 应用程序中实现 Firebase Messaging 插件 我从 github 上的 quickstart android master messaging 示例开始 https github com fireb
  • Python 的“re”模块不起作用?

    我使用 Python 的 re 模块 如下所示 request get http www allmusic com album warning mw0000106792 print re findall
  • 如何在 Perl 脚本中调用 shell 命令?

    我如何调用 shell 命令的示例是什么 比如 ls a 在 Perl 脚本中以及检索命令输出的方法 如何从 Perl 程序运行 shell 脚本 http www perlmonks org node id 78523 1 使用系统sys
  • 使用powershell刷新网页

    我只需要使用powershell刷新当前网页 但是所有打开的网页都在刷新 我的代码在这里 function Refresh WebPages param interval 5 Refreshing IE Windows every inte
  • 如何获取指向引用成员的指针?

    考虑这段代码 struct AA int rr 有没有办法获取指向的指针 或引用 AA rr为了获得这个 AA aa auto mm AA rr error cannot create pointer to reference member
  • CMake:如何在多个文件上运行自定义命令来生成源文件?

    我有以下情况 我想编译一些Scheme文件Gambit https github com gambit gambit成可执行文件 为此 我使用 gambit 将所有计划文件翻译 生成为 C 和目标文件 然后将其编译并链接为可执行文件 假设我
  • 数据库关系 1:1 vs 1:0..1

    我正在努力了解这些关系 正如我下面所示 它是否正确 1 我会有一个1 0 1通过简单地使父级的身份密钥也是子级的身份密钥来建立关系 2 为了做到这一点1 1 我在父表中添加一个FK 连接两个Identity列 这就是全部内容了吗 如果我的措
  • 在 Numpy 中预处理 Tensorflow 张量

    我在 Tensorflow 中设置了一个 CNN 用 TFRecordReader 读取数据 它工作得很好 但我想做一些比提供的更多的预处理和数据增强tf image功能 我特别想做一些随机缩放 是否可以在 Numpy 中处理 Tensor
  • 无法定义静态抽象字符串属性

    我遇到了一个有趣的问题 正在寻找一些关于如何最好地处理这个问题的建议 我有一个抽象类 其中包含一个静态方法 该方法接受我想定义为抽象属性的静态字符串 问题是 C 不支持以下内容 请参阅配置部分名称 and Current特性 public
  • 如何使用WebView中的id填充HTML输入中的值

    我的里面有 HTML 页面WebView有输入 输入有id 姓名 如何用一些字符串填充活动的输入 您可以尝试以下操作 mWebView loadUrl javascript document forms myform id value ne
  • 神经网络中“特征”的定义是什么?

    我是神经网络的初学者 我对这个词很困惑feature 你能给我一个定义吗feature 这些特征是隐藏层中的神经元吗 这些特征是输入向量的元素 特征的数量等于网络输入层的节点数量 如果您使用神经网络根据物理属性的测量将动物分类为猫或狗 那么
  • 构建失败 - TFS2008 上的 VS2010 解决方案

    我已将 VS2008 ASP NET MVC 解决方案迁移到 VS2010 MVC2 NET 4 0 该解决方案在本地构建 并且所有单元测试都通过 我们的 TFS 服务器仍然是 TFS2008 我在通过 CI 构建时遇到问题 项目全部构建成
  • 如何检测何时使用history.pushState和history.replaceState? [复制]

    这个问题在这里已经有答案了 当历史状态修改时 我可以订阅一些事件吗 如何 我曾经用它来通知何时pushState and replaceState叫做 Add this var wr function type var orig histo
  • 我可以删除[]一个指向已分配数组但不指向其开头的指针吗?

    我特别想知道以下情况 我在一些我必须使用的代码中发现的 SomeClass ar new SomeClass 2 ar delete ar 这段代码似乎工作正常 即没有崩溃 win32 用 VS2005 构建 这 合法 吗 感觉肯定不对 不