分段故障核心转储错误
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 是全球性的以上是关于分段故障核心转储错误的主要内容,如果未能解决你的问题,请参考以下文章