使用gcc编译代码并运行可执行文件时,终端会显示Segmentation fault: 11
。以前有人经历过这样的行为吗?
#include "stdio.h"
const int N=300;
int main(){
FILE * infile, * outfile;
int i, target, b[N];
infile=fopen("b.data","r");
outfile=fopen("found.data","w");
fscanf(infile, "%d", & target);
for (i=0; i<N;i++){
fscanf(infile, "%d", & b[i]);
}
for(i=0;i<N;i++){
if (b[i]==target){
fprintf(outfile, "%d\n", i+1);}
}
return 0;}
答案 0 :(得分:0)
我很确定上述评论是正确的。发生这种情况是因为它无法打开您的某个文件。我让这个在我的系统上工作没有问题。我会检查以确保您在创建文件时正确键入b.data,我还会检查文件权限以确保您能够读取b.data并写入found.data和您所在的目录工作。
第5行b [N]后面应该有一个分号,但你必须在实际文件中有分号,否则它甚至都不会编译。