gpt4 book ai didi

c - 为什么此代码在动态分配期间会崩溃?

转载 作者:太空宇宙 更新时间:2023-11-04 05:03:22 24 4
gpt4 key购买 nike

我在下面有这段代码片段,它在动态分配“str”中的分配过程中崩溃。

  char *str;
int file_size;
FILE *fptr;
if (!(fptr = fopen(filename, "r"))) goto error1;
if ((fseek(fptr, 0L, SEEK_END) != 0)) goto error2;
if (!(file_size=ftell(fptr))) goto error2;
if ((fseek(fptr, 0L, SEEK_SET) != 0)) goto error2;
str = (char*)malloc(file_size+1);
if (fread(str, file_size, 1, fptr) != 1) {
free(str);
goto error2;
}
str[file_size] = '\0';
fclose(fptr);

file_size 是非零、非负的小于 140 的值

我正在使用 ARM。这实际上适用于我的英特尔电脑,但不适用于 arm 机器。

最佳答案

您可以在手册中看到这一点 - ftell() 在出错时返回 -1,而不是零。

关于c - 为什么此代码在动态分配期间会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/954965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com