gpt4 book ai didi

C动态字符串长度

转载 作者:太空狗 更新时间:2023-10-29 15:00:02 25 4
gpt4 key购买 nike

在 C 语言中创建动态字符串有不同的方法(长度不断变化)。经过一些谷歌搜索,这样做的主要方式是使用 realloc() .

我实现它的一种方法是使用每个节点有 32 字节 block 的链表。

我想知道除了使用 realloc() 和链表之外是否还有更好的方法来解决这个问题,以及每种方法的优缺点。

编辑 我这样做的原因是因为我正在从套接字 recv() 接收动态数据,并且一直在寻找一种灵活的存储方式,无需分配大量不需要的数据。

最佳答案

您可以重新分配不同的预定义大小。例如,当缓冲区已满时,将其大小加倍。

使用链表是个好主意,但数据不是连续的(例如,你不能将整个结构传递给 printf)并且索引需要更多的计算(O(N) ).一个主要优点是附加字符串(在任一端)是 O(1)。

关于C动态字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/671593/

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