gpt4 book ai didi

c - 如何为从 c 中的文件读取的一行文本分配足够的内存

转载 作者:行者123 更新时间:2023-11-30 17:43:13 24 4
gpt4 key购买 nike

我需要编写的程序的目标是它只会从文件中读取一行一次(这意味着当您读取一次时,您不应该返回文件并再次读取它),并且它应该将该行存储在字符数组中。数组的大小必须足以容纳文本行。另外,建议不要使用 getchar,而使用 fgets。

最佳答案

最坏的情况是,文件中只有一行文本,因此您需要获取文件大小并为缓冲区分配那么多内存。

#include <io.h>
#include <stdlib.h>

long buffLen = _filelength(...);
// check bufLen for errors

char* buffer = (char*)malloc((size_t)buffLen);
// check for allocation failures (it could be an 8 gigabyte file)

如果您的 CRT 不支持 _filelength posix 函数,请查看此 thread ,并且还要记住,long 并非在所有平台上都是 64 位,因此最好使用返回 64 位值的方法。

关于c - 如何为从 c 中的文件读取的一行文本分配足够的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20277987/

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