为什么fgets()分配超过一百万个字节

时间:2019-01-31 07:09:01

标签: c memory memory-management valgrind fgets

好的。因此,在非常简单的程序中使用fgets时,我只是遇到了一些奇怪的行为。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** args)
{
    FILE* file = fopen("file.txt", "r");
    char line[80];
    fgets(line, 80, file);
    printf("%s", line);
    fclose(file);
    return 0;
}

正在打开的文件只有一行,并且只有25个字节。通过valgrind重新运行可执行文件时,它声明仅使用3个分配(加上3个释放)分配了超过100万个字节。

我只是想知道为什么会这样。

谢谢, 本

0 个答案:

没有答案