我有预先分配的缓冲区(字符数组),正在向其中写入字符串,它看起来像这样: “此\ 0缓冲区\ 0包含\ 0字符串\ 00000 ...”
我希望能够删除最后一个字符串,所以我想到了将缓冲区中的每个字符串表示为链接列表节点(带有指向其起点和终点的指针)的想法,因此我将找到最后一个节点并用零填充它拥有的区域。
struct node
{
char *str_start;
char *str_end;
struct node *next;
};
这似乎是一个非常普遍的问题,但是,我在任何地方都找不到这种实现。
问题是:我的用例是否存在一些我忽略的数据结构,或者有更好的解决方案?
注意:这将在内核模块中使用,因此它可能已在内核中实现
答案 0 :(得分:0)
您可以使用二维数组(考虑到缓冲区已预先分配,并且知道每个字符串的最大大小)。
这将使强制字符串大小更容易,从而使代码更安全。