-1
我要实现的是应该做的方法:从队列中取出特定值?
// int dequeue(queue_t* q, int* number);
但是我不知道什么是第二个参数的点,因为总是需要dequeing的最后一个值。我使用循环缓冲区来实现它。我最初的想法是:
int dequeue(queue_t* q, int* val) {
if(q->size==0){
printf("Queue is Empty\n");
return QUEUE_IS_EMPTY;
}
else {
printf("Dequeueing\n");
q->size--;
q->front++;
if (q->front == q->capacity)
{
q->front = 0;
}
}
return 0;
}
我不知道这是像复制粘贴或错误的错误?
我们怎么能知道呢?我们只能猜测,这个问题太广泛了。你不提供[mcve]。我们不知道'queue_t'。 – Stargateur
您的代码示例没有从队列中返回任何值,所以我的猜测是您需要通过'int * val'参数返回实际出列值,并返回状态结果。另外,如果这是一个循环缓冲区,那么'q-> size'是多余的(并且会导致并发访问问题)。 – Groo