Tag: circular buffer

从结构中的指针获取数据“读/写无效”

我试图在数组中执行循环缓冲区。 我将数据保存在结构中,并通过推送,弹出等方法管理它。程序或多或少具有function和行为符合预期,但是我在valgrind测试中遇到错误。 我无法找出我的代码有什么问题。 虽然看起来像我的结构中通过指针管理数据是关键问题。 如果有人能指出我正确的方向,我将非常感激,因为我现在真的迷失了。 这是我的结构的样子: typedef struct queue_t{ int* data; int* end; int* head; int* tail; int max_length; int cur_length; } queue_t; 以下是我管理缓冲区操作的方法: (注释代码产生与memcpy几乎相同的错误) int* increase(int* point, queue_t* queue){ if(point != queue->end){ point = point + sizeof(int*); return point; }else{ return queue->data; } } queue_t* create_queue(int capacity){ queue_t* fifo; fifo = malloc(sizeof(queue_t)); fifo->data = […]