【发布时间】:2018-04-05 03:25:24
【问题描述】:
我不确定为什么会发生这种情况,但我从这个非常简单的代码中得到了“分段错误(核心转储)”。关于为什么的任何想法?我必须用一个字符串告诉 fopen() 打开什么文件。
#include <stdio.h>
#include <string.h>
int main(void) {
char *small = "small.ppm";
FILE * fp;
char word[5];
fp = fopen(small, "r");
fscanf(fp, "%s", word);
printf("%s\n", word);
return 0;
}
【问题讨论】:
-
fp可能是NULL(您没有检查fopen是否成功)。您要阅读的单词有多大? -
第一行只是一个简短的 2 字符行,上面写着“P3”,这就是我在这种情况下要阅读的全部内容。 small.ppm 文件本身有 10 行代码,其中大部分包含一张非常小的图片的 RGB 值。