【问题标题】:How to manage a buffer string in C如何在 C 中管理缓冲区字符串
【发布时间】:2016-04-13 22:03:29
【问题描述】:

在我的程序中,我有一个全局缓冲区字符串,比如说

char buffer[110];

它从适配器读取并存储尚未处理的字符串。我有这样的事情:

while(...){
    readfromAdapter();
    copytoBuffer();
    processAndRemoveSomeCharsFromBuffer();
}

每次处理字符串的一部分时,我都希望将其从缓冲区中删除。我搜索了如何从 C 中的字符串中删除前几个字符,在大多数答案中我增加了指针,在本例中为 buffer。但是,在这种情况下,这应该会导致溢出。

我有两种方法。

每次我用完缓冲区中的空间时,我都会释放旧空间并为其分配一些新空间。在这种情况下,我会将缓冲区从 char 数组更改为全局 char 指针。

另一个是每次进行一些字符时,我都会将旧的buffer+len复制到buffer

我该怎么做?

【问题讨论】:

    标签: c string buffer


    【解决方案1】:

    动态分配和释放内存非常昂贵。如果分配的空间大到足以调用 SYSCALL,那将花费您额外的时间。如果它对您的程序实用,您应该使用您拥有的空间,从一个字符串复制到另一个更好。

    【讨论】:

      【解决方案2】:

      看来ring buffer 可以帮到你。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多