当我使用
fstat(fileno(file), &st); //struct stat st
buf = malloc(fsize); //size_t fsize
fread(buf, 1, fsize, file);
我真的很怀疑,因为malloc
应该fsize * sizeof(size_t)
为我分配大空间,但是当我尝试访问时buf + 8*fsize
,我已经超出了界限。
但是,buf+fsize
它在正确的位置,文件末尾,我刚刚计算了地址,它们都很多!像 malloc 只是fsize * sizeof(char)
为我返回了很大的空间。
所以,我在哪里错了,任何帮助都是值得的。