我正在开发一个简单的 C 程序来打开一个文件并从中读取一些数据。没有编译错误,但是当我在某个文件上运行程序时,我收到“分段错误:代码转储”错误。我在代码的最顶部插入了一条打印语句,但它没有运行。当您还没有做任何事情时,是否有可能出现分段错误?
#include <stdio.h>
int main(int argc, char **argv)
{
printf("%s", "Made it to here!");
FILE *fp;
char input[100];
fp = fopen(argv[1], "r+b");
fgets(input, sizeof(input), fp);
printf("%s", input);
fclose(fp);
return(0);
}
当我在其自身的文本版本上运行它时,它会起作用,它会打印出第一行。但是,当我在另一个文件 texttest.vmf 上运行它时,我得到了分段错误并且第一次打印没有执行。VMF 是阀门图文件,但它们采用标准文本格式。该文件大小约为 3.7 KB。有任何想法吗?