取消引用已删除的指针是否总是会导致崩溃? [复制]

2024-03-26

我这里有一个非常简单的 C++ 代码示例:

char *s = new char[100];
strcpy(s, "HELLO");
delete [] s;
int n = strlen(s);

如果我通过按 Visual C++ 2008 运行此代码F5(开始调试)这总是会导致崩溃(访问冲突)。但是,在 IDE 外部启动此可执行文件,或者使用 IDECtrl+F5(启动而不调试)不会导致任何崩溃。有什么区别?

我还想知道是否可以稳定地重现访问已删除区域导致的访问冲突崩溃?这种车祸在现实生活中很少见吗?


通过已删除的指针访问内存是未定义的行为。您不能期望任何可靠/可重复的行为。

最有可能的是它在一种情况下“有效”,因为字符串仍然“坐在那里”在现在可用的内存中 -= 但你不能依赖它。 VS 用调试值填充内存,以帮助强制崩溃,从而帮助找到这些错误。

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

取消引用已删除的指针是否总是会导致崩溃? [复制] 的相关文章

  • 即使我没有#include ,为什么仍然可以使用 std::max 和 std::min ?

    include
  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 将数据集导出到 EXCEL

    我使用以下代码将数据库表中的字段导出到 Excel 中 我想要做的是能够编写一条 SQL 语句从多个表中检索字段并将其导出到 Excel 中 这段代码只允许我导出一张表 另外 如何显示保存提示对话框 示例代码将不胜感激 非常感谢 prote
  • 如何查找boost运行时版本

    我正在编写一个使用 boost 的 C 库 在这个库中 我想包含有关用于编译我的库的二进制版本的 boost 版本的信息 我可以使用宏BOOST VERSION这很好 我还想确定哪个是 boost 的运行时版本 以便我可以与用于编译我的库的
  • 如何使用movntdqa避免缓存污染?

    我正在尝试编写一个 memcpy 函数 该函数不会将源内存加载到 CPU 缓存中 目的是避免缓存污染 下面的 memcpy 函数可以工作 但会像标准 memcpy 一样污染缓存 我正在使用带有 Visual C 2008 Express 的
  • 每个 CPU 核心处于 C0 电源状态的时间

    任何帮助弄清楚如何做到这一点都会很棒 在过去一秒内 每个 CPU 核心处于 C0 电源状态的时间有多少 这是针对 Mac 应用程序的 因此需要 Objective C cocoa 和 c OS X 没有任何公开 CPU c 状态的 API
  • 如何将 pem 公钥转换为 openssl RSA* 结构

    假设我必须像这样公开 pem 密钥 BEGIN PUBLIC KEY MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7vbqajDw4o6gJy8UtmIbkcpnk O3Kwc4qsEnSZp TR fQi
  • 将数组从 C# 编组到 C++ 并返回:PInvokeStackImbalance

    我有一个 C 函数 我想从 C 访问它 问题是我不断收到 PInvokeStackImbalance 异常 但我不知道为什么 当检查异常被关闭时 一切都运行良好并且符合预期 我的 C 函数的签名是 extern C double solve
  • 如何以编程方式确定 C 中 int 数据的最大和最小限制?

    我正在尝试 K R 的练习 2 1 练习内容如下 编写一个程序来确定范围char short int and long变量 两者signed and unsigned 通过从标准标题打印适当的值并通过直接计算 如果计算它们会更困难 确定各种
  • c++11 中的 std::thread 问题

    我在尝试从标准模板库编译具有多线程的程序时遇到一些麻烦 当我尝试编译以下程序时 它返回一个晦涩的错误 include
  • c#Registry to XML无效字符问题

    我在尝试从注册表创建 XML 文件时遇到问题 在我的笔记本电脑 W7 64b 上它工作正常 生成了 xml 文件 但在另一台计算机 Xp 32b 上抛出异常 System ArgumentException 十六进制值 0x00 是无效字符
  • 我应该使用函数还是无状态函子?

    这两段代码做同样的事情 如您所见 它将用于排序函数 哪个更好 我通常写后一种 但我看到一些程序员像以前那样做 struct val lessthan binary function
  • 为什么 MISRA:2012 需要函数原型?

    我想知道为什么 MISRA 2012 需要函数原型 在下面的示例中 这两个原型并不是真正必要的 include
  • 什么是多重重继承?

    我将以下称为 多重重新继承 直接继承一个类一次 并通过继承其一个或多个后代来间接继承一次或多次 通过继承一个类的两个或多个后代来间接继承一个类两次或多次 我想知道它是否存在以及如何明确访问嵌入的子对象 1 Professional C 2n
  • lambda 表达式是多线程的吗?

    lambda 表达式是多线程的吗 假设当你将数学公式编写为 lambda 方法时 当你将其传递给另一个方法时 它会是多线程的吗 不是100 清楚你问的是什么 您是否想问 lambda 是否自然地在不同的线程上运行 如果是这样 则它们只是 S
  • 父窗体中的居中消息框[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以在 net 2 0中将MessageBox居中于父窗体中 我在 C 中确实需要这个并发现中心消息框 C http bytes com topic c sharp answers 26712
  • 为什么C#不支持多重继承? [复制]

    这个问题在这里已经有答案了 可能的重复 C 应该包含多重继承吗 https stackoverflow com questions 191691 should c include multiple inheritance 为什么C 不支持多
  • 为了清楚起见,是否应该在返回类型上使用无用的类型限定符?

    当我们的头文件中有原型时 我们的静态分析工具会抱怨 返回类型上有无用的类型限定符 例如 const int foo 我们这样定义它是因为该函数返回一个永远不会改变的常量 认为 API 看起来更清晰const到位 为了清楚起见 我觉得这类似于
  • 如何在Asp.Net Core中自定义开发者异常页面?

    这常见于ConfigureStartup cs 文件的方法具有如下所示的代码 if env IsDevelopment app UseDeveloperExceptionPage new DeveloperExceptionPageOpti
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足

随机推荐

  • 服务器端处理的数据表上的“列索引”

    有谁知道如何添加列索引 to a 服务器端处理数据表 http www datatables net 基本上喜欢http www datatables net examples api counter columns html http w
  • 用c#在asp.net中发送邮件脚本

    请建议我一个代码发送邮件asp net 中的脚本C 我想建造调查表我想发送我的电子邮件 ID 上的所有信息 包括附件 主题和正文 try Assign a sender recipient and subject to new mail m
  • Windows XP 上的 Java 最大内存

    我一直能够为在 32 位 Windows XP Java 1 4 1 5 和 1 6 上运行的 Java SE 分配 1400 MB 的空间 java Xmx1400m 今天 我在使用 Java 1 5 16 和 1 6 0 07 的新 W
  • Javascript字符串nodejs流实现

    我需要一个将数据发送到字符串的nodejs 流 http nodejs org api stream html 实现 你认识什么人吗 直接地说 我正在尝试通过管道传输请求响应 如下所示 请求 http google com doodle p
  • 检查字符串变量是否具有整数值

    我正在开发一个项目 允许孩子们向圣诞老人发送消息 不幸的是 如果他们在 AGE 字段中输入字符串而不是整数 则程序会崩溃并返回 Conversion from string exampleString to type Double is n
  • 使用 RSA AES 提供程序生成自签名 1024 位 X509Certificate2 时出现问题

    我正在尝试使用以下命令生成 X509Certificate2 对象Microsoft AES 加密提供程序 https msdn microsoft com en us library windows desktop aa386979 28
  • .External2(C_dataviewer, x, title) 中的错误:无法启动数据查看器

    在 R 中 每次点击时都会出现以下错误View or data frame我不明白为什么 事情发生得很突然 gt View Fhat all Error in External2 C dataviewer x title unable to
  • 如何冻结设备特定的已保存模型?

    我需要冻结保存的模型以供服务 但某些保存的模型是特定于设备的 如何解决此问题 with tf Session config tf ConfigProto allow soft placement True as sess sess run
  • 性能分析 asp.net,什么是 ProcessRequestNotificationHelper?

    我正在对每秒 20 个用户的负载下的 ASP NET Web 应用程序进行性能分析 20 个用户基本上使应用程序瘫痪 并且无法加载任何内容 我正在使用 RedGate 性能分析器 但我不知道如何使用它 12 的时间花在我的代码上 我可以深入
  • 该程序无法启动,因为您的计算机缺少 MSVCR110.dll

    我正在尝试将 apache 服务器 2 4 安装到我的 Windows 计算机上 到目前为止我遇到了这个 常见 问题 但我无法解决它 标题中的错误消息继续出现 但我已经 成功 下载了缺少的必需项目的 32 位和 64 位版本http www
  • kubectl 从 gitlab 未经授权拉取镜像:HTTP Basic:访问被拒绝

    我正在尝试配置 gitlab ci 以将应用程序部署到谷歌计算引擎 我已成功将映像推送到 gitlab 存储库 但在应用 kubernetes 部署配置后 我在 kubectl 描述 pod 中看到以下错误 Failed to pull i
  • Java-应用程序背后的屏幕捕获

    有没有一种方法可以捕获屏幕但不显示应用程序本身 我知道如何最小化或使框架不可见 但这必须非常快地完成 因为它会在每秒发生很多次 至少每秒一次 我希望它看起来像 Windows Vista 7 中的放大镜 该应用程序可以看到自己的背后 Cal
  • 使用 iPhone SDK 以编程方式拨打电话号码并传递 DTMF

    如何通过 iPhone SDK 以编程方式执行以下操作 通过 iPhone SDK 以编程方式拨打电话号码 绕过拨号 取消iPhone 弹出的提示 拨打号码后发送额外的 DTMF 就像将暂停编程到普通电话中一样 我知道你可以做一个tel 呼
  • 在 HTML5 Web SQL 数据库中对日期时间进行排序

    我找不到解决我的问题的方法 我有一个 HTML5 Web SQL 数据库 其中有一个如下表 db transaction function tx tx executeSql CREATE TABLE IF NOT EXISTS todo t
  • 可拖动的平面列表不渲染任何内容

    我正在尝试为draggable flatlist编写一个简单的代码 相同的代码对于 FlatList 运行得非常好 在下面的代码中 如果我用 DraggableFlatList 替换 FlatList 尽管从渲染组件 TaskListTil
  • 为什么要在方法参数列表中添加void

    我见过具有以下签名的方法 void foo void 他们不接受任何争论 但我想知道这样做是否有用 您有理由这样做吗 这是旧版本 C 的遗留物 其中foo 意思是 具有未知数量参数的函数 并且foo void 意思是 零参数的函数 在 C
  • Android 中使用 Kotlin 的文件复制 Flutter 插件

    尝试创建一个 Flutter 插件 将资产文件复制到本机应用程序文档文件夹 对于 iOS 我通过以下代码实现了这一点 见下文 但是 由于我对 Android 架构了解不多 所以我想知道我的 Android MethodChannel 代码应
  • KeyboardView 在 Android 中已被弃用

    KeyboardView已被 Android 团队在 API 级别 29 中正式弃用 我无法找到替代方法 请告诉我是否还有其他选择 谷歌建议的唯一解决方案是复制键盘视图 java https android googlesource com
  • 以角度方式检测窗口焦点?

    有没有一种好的角度方法来检测窗口焦点 我正在使用 html5 通知 并且我只想在窗口失去焦点时触发 Thanks 有一个内置的角度指令ngFocus here https docs angularjs org api ng directiv
  • 取消引用已删除的指针是否总是会导致崩溃? [复制]

    这个问题在这里已经有答案了 我这里有一个非常简单的 C 代码示例 char s new char 100 strcpy s HELLO delete s int n strlen s 如果我通过按 Visual C 2008 运行此代码F5