这是我的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;
}
请指导。
答案 0 :(得分:2)
刚刚发现: 只需将文件打开功能分配给我的文件描述符。
fp = fopen("sample.txt", "w+");
答案 1 :(得分:0)
fprintf打印到文件指针fp给出的文件。在这种情况下,fp仅被声明并且从未赋值,因此为null。当fprintf使用空指针时,它会导致seg错误。你应该做fp = fopen(...)所以指针不是null。