为什么我没有收到“分段错误”? [复制]

2023-12-03

可能的重复:
当我写入超出数组末尾时,为什么不会出现分段错误?

这段代码编译并运行没有任何错误。但如何呢?

#include <stdio.h>

int main (void)
{
    int foo[2];

    foo[8] = 4; /* How could this happen? */

    printf("%d\n", foo[8]);

    return 0;
}

我正在编译海湾合作委员会 4.7.2在 Arch Linux x86_64 上。

gcc -Wall -o "main" "main.c"

因为未定义的行为并不意味着“您将收到段错误”,这将是已定义的行为。

假设您正在调试模式下运行,并且编译器正在填充堆栈/局部变量空间。您可能只是写入堆栈空间的一些未使用的部分。

在星期一构建发布版本,此时您的编译器感觉很奇怪,现在您覆盖返回地址或设置调用的代码printf, 任何。哎呀。

只有一种可能的结果,但你明白了。

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

为什么我没有收到“分段错误”? [复制] 的相关文章

  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 使用 C# 读取 Soap 消息

  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 创建 PDF 的最佳 C# API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 您能推荐任何适用于 C 的
  • awk 打印每个类别的所有最小值

    想要打印基于的所有最小值1 美元和 3 美元组合 如果有两条或多条线路可用 对于具有 1 和 3 唯一组合的最小值 则需要打印所有行 例如 1 Abc 的最小值 3 10 出现两次 即 Abc yyy 10 aaa 和 Abc ttt 10
  • CatBoost 精度不平衡类

    我使用 CatBoostClassifier 我的类高度不平衡 我应用了一个scale pos weight参数来解决这个问题 在使用评估数据集 测试 进行训练时 CatBoost 在测试中显示出很高的精度 然而 当我使用预测方法对测试进行
  • 使用jquery停止网页滚动

    我正在网页中使用查询凹凸盒插件 我正在处理 但在使用它时我仍然可以滚动离开凹凸盒 我想知道是否有某种 jquery 方法可以阻止网页滚动 或者只是以与用户滚动相同的距离向相反的方向滚动 由于没有发布代码 很难具体说明 但为了防止滚动 您可以
  • 尝试理解 Java 8 中的方法引用(将类方法分配给功能接口)[重复]

    这个问题在这里已经有答案了 我试图更好地理解方法引用是如何工作的 在这个例子中 我遵循了代码的逻辑 但我不明白这样做的价值 基本上 在 STEP 2 中的方法引用赋值之后 someMethod 被用作 MyInterface 的 displ
  • 删除 *.pyc 并重新运行 .py 脚本后出现奇怪的行为

    我有三个模块 one py def abc print Heeeeeeeeeeeiiiiiioooooooooo two py import one def defg one abc three py import os from time
  • sqlite3 列类型

    我正在开始一个新项目 该项目必须将数据转换为XML to db XMLs有自己的格式 不能用来填充db 我选择使用sqlite 因为它是一个嵌入式平台 我需要一个轻量级的库 我正在努力处理列类型 我写了下面的sql static int c
  • 在 C# 中使用 cmd 将文件从一个目录复制到另一个目录

    我需要将文件从一个目录复制到另一个目录并对该文件执行某些操作 我需要复制它cmd 而不是File Copy 因为我需要将副本作为ProcessStartInfo 您可以使用此代码并更改startInfo Arguments but C应该
  • ChromeDriver 仅支持 Chrome 版本 89

    使用 Azure DevOps 不知何故管道停止工作 并且在运行时无法完成测试ng lint ng e2e ng test watch false 这在本地运行时有效 16 43 25 I launcher Running 1 instan
  • as3 从另一个类调用 Main.as 文档类中的函数

    我确信这是一个受欢迎的问题 但我找不到我需要的确切答案 我只需要访问在 Main as 文档类中创建的一个或多个函数 我尝试了几种方法 但似乎都不起作用 这是我尝试过的一个例子 anotherClass as 这需要访问函数Main as
  • 交互失败discord.py按钮

    client command async def button ctx await ctx message delete await ctx send Support Tickets components Button label Gene
  • 将包含 ASCII 的字符串转换为 Unicode

    我从 HTML 页面获取一个字符串到我的 Java HTTPServlet 中 根据我的要求 我得到了显示汉字的 ASCII 代码 可以告诉我 没有空格 我怎样才能把这个字符串转换成Unicode HTML 代码
  • 从 HTML 按钮运行 Python 脚本

    P 我正在尝试实现一个将运行 Python 脚本的按钮forward py 让我的机器人前进 使用 Lighttpd Web 服务器 PHP 7 0 Python 脚本在终端窗口中执行时工作正常 但是当我尝试通过单击按钮运行它时 它不起作用
  • 推送到 GitHub 时出现 403 错误

    我正在尝试将一个新的本地分支 名为 haystack 推送到我的 github 存储库 git push u origin haystack 但我收到错误 错误 访问时请求的 URL 返回错误 403https github com Gra
  • 使用 jQuery 验证单选按钮

    在我的表单上有一组单选按钮 这是标记 div class optionHolder p class optionName Format p div class option checked div div
  • AsyncTask 从不执行 onPostExecute

    我正在尝试执行以下 AsyncTask private class TimeUpdateTask extends AsyncTask
  • Sklearn LinearSVC库中惩罚参数和损失参数的区别

    我对 SVM 理论不太熟悉 我在 python 中使用这个 LinearSVC 类 http scikit learn org stable modules generated sklearn svm LinearSVC html skle
  • 嵌入式系统上的 C++ 动态代码注入

    我正在寻找以下问题的解决方案 开发了在嵌入式设备上运行的 C 软件模块 无法使用基于文件的函数 dlopen 来加载共享库 当模块运行时 它应可通过动态程序代码进行扩展 动态代码在PC系统上编写 接口功能的实现 和交叉编译 gcc 然后通过
  • 如何用两种颜色填充 JavaFX 球体

    如何用像 2d 圆一样的线性渐变填充 JavaFX 3D 球体 我使用 JavaFX 场景生成器 正如 mohsenmadi 所指出的 漫反射颜色不允许您使用除一种单一颜色之外的其他颜色 但是 通过使用图像作为漫反射贴图 您可以在球体上拥有
  • 为什么我没有收到“分段错误”? [复制]

    这个问题在这里已经有答案了 可能的重复 当我写入超出数组末尾时 为什么不会出现分段错误 这段代码编译并运行没有任何错误 但如何呢 include