C动态字符串长度

标签 c string dynamic

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

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

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

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

最佳答案

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

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

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

相关文章:

string - 经典 ASP (VBScript) 替换字符串中的特殊字符表现很奇怪

java - 动态 JTable - 从所有行获取数据

c - C 梯形法则错误答案

string - 强制字符串变为大写

C - 搜索子字符串的函数..需要简化

dynamic - 画面 : How to hide cell values when less than 5

ios - 月份和年份的 UIPicker。动态获取年份

c - 这段代码有一个错误,但我找不到它

c - 通过函数的返回值初始化 C 结构

c - GArray 未按预期在初始化时清除