C - Malloc 和 size_t 似乎不匹配



>当我使用

  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)大空间。

所以,我错在哪里,任何帮助都是值得的。

你的代码说malloc(fsize)但你想要的是malloc(fsize * sizeof(size_t))malloc函数采用要分配的字节数。它无法知道您将使用内存来存储size_t

更新:我可能误解了这个问题。当提问者回答我上面评论中提出的问题时,我会更新这个答案。

相关内容

  • 没有找到相关文章

最新更新