c - c中的缓冲区管理

标签 c buffer buffer-overflow adjustment

我有一个大小为2000的缓冲区,要插入的数据是无限的。我想要,超过2000的数据应该从缓冲区末尾添加,即将所有数据从右向左推送,并在缓冲区末尾插入新数据。那么,我应该尝试什么样的算法或流程?

最佳答案

您想要使用 FIFO 或“循环缓冲区”。请参阅http://en.wikipedia.org/wiki/Circular_buffer以获得完整的解释,甚至示例代码。

根据您的实际需求,实现方式可能会有所不同。例如,如果您始终需要按顺序访问 2000 个项目,则可以省略读指针(因为它始终位于写指针后面的一项)。

编辑:队列是类似的东西。如果您使用 C++,请考虑 http://www.cplusplus.com/reference/stl/queue/

关于c - c中的缓冲区管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12758919/

相关文章:

C 编程语言练习 2-4 : I dont understand the answer

javascript - WebGL:绘制点失败:glDrawArrays: "attempt to access out of range vertices in attribute 1"

c - 用于生成 shell 的十六进制代码实现

c - 缓冲区溢出漏洞实验室问题

c++ - 从指定输入和预期结果的场景表生成单元测试

c++ - C 中快速复制的模式

.net - 用字符串初始化的StringBuilder是否包含(仅)该字符串足够的空间?

c - 缓冲区溢出内存映射解释

c - 跨编译器的 For 循环问题

c++ - 刷新缓冲区是什么意思?