37得票4回答
从函数中返回此指针

我试图从一个函数中返回指针,但是我得到了一个分段错误。请问代码有什么问题?#include <stdio.h> int *fun(); main() { int *ptr; ptr = fun(); printf("%d", *ptr...

36得票5回答
在R中遇到“内存未映射”错误导致的段错误

我在我们的集群上运行一些R脚本遇到了问题。问题突然出现(所有脚本都正常工作,但有一天它们开始出现“caught segfault”错误)。我无法提供可重现的代码,因为即使是在我的电脑上也无法重现该错误-它只会在集群上发生。我还使用相同的代码处理两组数据-一组数据相当小且可以正常运行,另一组数据...

36得票3回答
分段错误与页错误

我想知道分段错误和页面错误之间的区别和关系是什么? 分段错误只属于分段存储器模型吗? 页面错误只属于分页存储器模型吗? 如果两者都是,由于大多数计算机系统(如x86和Linux)使用分页存储器模型而不是分段存储器模型,为什么GCC C编译器有时会报告分段错误? 谢谢和问候!

34得票4回答
堆栈溢出除了导致分段错误外,还会产生其他的结果吗?

在编译程序中(比如说C或者C++,但我想这个问题也适用于任何非虚拟机语言带有调用栈的情况),当你溢出了栈时,通常会导致segmentation fault错误: 栈溢出是原因,segmentation fault错误是结果。 然而,这总是这样吗?栈溢出会导致其他类型的程序/操作系统...

33得票5回答
我该如何诊断PHP分段错误?

我正在运行一个命令行的PHP作业,但是出现了分段错误。这个作业已经运行了很长时间,但是它会处理来自电子邮件的信息。显然,这封电子邮件中有一些东西导致了错误,但我不知道具体是什么。如果我将核心文件放到gdb中,也不能提供太多帮助: $ gdb /usr/local/bin/php core.2...

33得票2回答
为什么const int main = 195会导致程序工作正常,而没有const则会出现分段错误?

考虑下面的C程序(在此处查看实时演示here)。const int main = 195; 我知道在现实世界中没有程序员会写出像这样的代码,因为它没有任何有用的目的并且毫无意义。但是当我从上面的程序中移除 const 关键字时,它立即导致了 分段错误。为什么?我渴望知道背后的原因。 GCC 4...

32得票6回答
当在Unix上启用优化时,strcpy()/strncpy()在具有额外空间的结构成员上崩溃?

当我写项目时,遇到了一个奇怪的问题。 这是我设法编写的最小代码,以重新创建此问题。我故意在其他地方存储实际字符串,并分配了足够的空间。 // #include <stdio.h> #include <stdlib.h> #include <string.h&g...

32得票9回答
在内存中执行机器码

我想知道如何执行存储在内存中的机器码。我有以下代码:#include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { FILE* f = fopen(argv[1], "rb")...

32得票1回答
最短的C程序,仍然会导致段错误

有一瞬间,我为自己编写了可能是第一个没有C语言bug的程序感到非常自豪。 这是完整的源代码:int main; 即使没有 int,它也可以完美编译,但会发出警告(即使没有 -Wall),作为一个追求无错程序的程序员,我将其视为错误。 编译这个应用程序后我欣喜地立即启动了它。令我惊讶的是,出现...

32得票3回答
为什么在PHP中无限递归的函数会导致segfault?

一个供大家思考的假设性问题... 最近我在stackoverflow上回答了另一个问题,其中一个PHP脚本出现了segfault,这让我想起了一些我一直在想的东西,所以让我们看看是否有人能够给予任何启示。 考虑以下情况:<?php function segfault ($i =...