分段故障核心转储错误

Posted

技术标签:

【中文标题】分段故障核心转储错误【英文标题】:Segmentation Fault Core Dump Error 【发布时间】:2016-04-16 06:22:34 【问题描述】:

这是我的 C 程序,我正在使用 g++ 编译器。 编译后,当我运行代码时,它给出了一个分段错误(核心转储)错误:

#include <stdio.h>
#include <stdlib.h>

int main()

  FILE *fp;

  fopen("sample.txt", "w+");

  fprintf(fp, "%s %s %s %d", "We", "are", "in", 2016 );

  fclose(fp);

  return 0;

请指导。

【问题讨论】:

您正在使用 fp 而不对其进行初始化。这是未定义行为的原因。使用fp = fopen("sample.txt", "w+"); 请删除您的帖子。这不太可能对其他人有帮助。 【参考方案1】:

刚刚发现: 只需将文件打开函数分配给我的文件描述符。

fp = fopen("sample.txt", "w+");

【讨论】:

【参考方案2】:

fprintf 打印到文件指针 fp 给定的文件。在这种情况下, fp 仅被声明并且从未赋值,因此为空。当 fprintf 使用空指针时,它会导致段错误。你应该已经完成​​ fp = fopen(...) 所以指针不为空。

【讨论】:

“因此为空” - 它是不确定 你完全正确。出于某种原因,我认为 fp 是全球性的

以上是关于分段故障核心转储错误的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中转储的分段故障核心

代码分段错误(核心转储)pthread创建[关闭]

python OpenCV分段故障(核心转储)

Centos docker容器因6分段故障而崩溃 - 这是核心转储

识别导致分段错误(核心转储)的错误

分段错误:核心转储