-1
私が行うことになっているメソッドを実装する必要があります。キューから特定の値をデキューしますか?
// int dequeue(queue_t* q, int* number);
をしかし、私はいつもデキューすると、最後の値をとるので、第二引数のポイントはあるのだろうか。私はそれを実装するために循環バッファを使用します。私の最初の考えは:
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;
}
私はコピー貼り付けやsthのような間違いでしょうか?
どのように我々が知っていることができます。
は、その後、それは次のように使用することができますか?私たちは推測することができますが、この質問は広すぎます。あなたは[mcve]を提供しません。 'queue_t'についてはわかりません。 – Stargateur
あなたのコード例ではキューから値が返されないので、実際にデキューされた値を 'int * val'パラメータで返す必要があり、ステータス結果を返す必要があります。また、これが循環バッファーの場合、 'q-> size'は冗長です(並行アクセスに問題があります)。 – Groo