gpt4 book ai didi

c - 指向未知长度字符串的指针数组

转载 作者:行者123 更新时间:2023-11-30 19:32:28 24 4
gpt4 key购买 nike

我有一个 .csv 文件,其中的字段可以读取为整数、字符串、整数。我不知道字符串的大小,它们可能在 csv 中的不同条目中有所不同。例如:

1,Hello,10
2,hi,20

这里Hellohi长度不同,那么如何在使用 malloc 从文件读取时动态分配字符串的大小?

任何人都可以帮助我了解它的语法,从声明开始直到使用 malloc 分配大小。

我的输出应该看起来像,它正在从 .csv 文件读取整数、字符串、整数并显示文件中的所有字符串。

文件中的条目数量可达数千万。

最佳答案

有很多方法可以解决这个问题。一般的想法是设置缓冲区的最大存储空间。现在,如果您不知道这一点,您会怎么做?

我可以告诉你一个简单的想法,你用一些BUFFERSIZE创建一个缓冲区。现在,在逐个字符读取时,您将知道缓冲区的 90% 何时已满。发生这种情况时,您需要重新分配内存并将其加倍。这样您将始终拥有必要的内存量。

另一种方法是逐部分处理。相反,存储整个大块然后对其进行处理,将其划分并完成工作,然后读取下一个 block 。这样您就不会一次使用太多内存。

大多数大型数据处理 C 库都遵循此处所述的类似想法。

关于c - 指向未知长度字符串的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46997263/

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