【发布时间】:2016-08-09 00:27:26
【问题描述】:
我有一段代码,我认为我在过去编译并成功,但现在我遇到了段错误,我不明白为什么。
FILE *numbers = fopen("./e13.txt", "r");
//seeking the end of the file to get the correct size for the string
//I will store
fseek(numbers, 0, SEEK_END);
long fsize = ftell(numbers);
fseek(numbers, 0, SEEK_SET);
//Allocating memory to the string
char *string = malloc(fsize + 1);
我正在尝试将文件读入内存,以便获得适当的大小并尝试malloc 那个内存量。我认为这是 fseek 函数中的段错误,但我不明白为什么......
【问题讨论】:
-
也许是时候开始检查错误了。
-
我该怎么做?
-
第 1 步。阅读每个手册页以找出它在错误时返回的值。例如
fopenman page。步骤 2. 检查这些错误。例如if (!numbers) { perror("fopen failed"); exit(1); } -
@deltaskelta:通过阅读手册!
标签: c gcc segmentation-fault