出队功能无法正常工作
Dequeue function not working correctly
任何人都可以告诉我我的出队功能有什么问题吗?它总是一遍又一遍地保持第一个值,但在其他方面似乎运作良好。提供了示例输出。
NODE *dequeue(NODE **queue)
{
if (*queue == NULL)
{
return;
}
NODE *pTemp = *queue;
printf("[%d %d] -> ", pTemp->pid, pTemp->priority);
*queue = (*queue)->next;
return pTemp;
}
函数被这样调用:
NODE *someQueue;
//code to add values here
for (i = 0; i < numberOfQueueItems; i++)
{
printf("\nDequeue time.\n");
printList("readyQ", someQueue);
dequeue(someQueue);
}
您没有正确调用 dequeue
。它需要一个指向 NODE 的双指针,但你传递了一个指向 NODE
的指针
改变
dequeue(someQueue);
至
dequeue(&someQueue);
任何人都可以告诉我我的出队功能有什么问题吗?它总是一遍又一遍地保持第一个值,但在其他方面似乎运作良好。提供了示例输出。
NODE *dequeue(NODE **queue)
{
if (*queue == NULL)
{
return;
}
NODE *pTemp = *queue;
printf("[%d %d] -> ", pTemp->pid, pTemp->priority);
*queue = (*queue)->next;
return pTemp;
}
函数被这样调用:
NODE *someQueue;
//code to add values here
for (i = 0; i < numberOfQueueItems; i++)
{
printf("\nDequeue time.\n");
printList("readyQ", someQueue);
dequeue(someQueue);
}
您没有正确调用 dequeue
。它需要一个指向 NODE 的双指针,但你传递了一个指向 NODE
改变
dequeue(someQueue);
至
dequeue(&someQueue);