1

在我的 C 程序中,对于文件 i/o,是否足够:

    FILE *fp = fopen("example.txt", "r");
    char *buffer = malloc(sizeof(*fp));

在我使用的情况下:

    while (fgets(buffer, sizeof(*fp), fp) != NULL) {
        //do stuff
    }

在这种情况下,我是否会通过写入缓冲区而导致缓冲区溢出?

4

1 回答 1

1

不,你永远不会得到缓冲区溢出。但看起来您认为sizeof(*fp)正在产生文件的大小,但事实并非如此。这给了你一个FILE结构的大小。

于 2013-05-25T04:09:15.837 回答