C “我的出列”功能不支持';我不能正常工作,我错在哪里?

C “我的出列”功能不支持';我不能正常工作,我错在哪里?,c,C,当我在main()函数中打印被删除节点的数据时,它似乎输出了一个随机数,我的错误是什么?任何人都请帮忙 您可以释放和返回节点。如果要释放节点,请不要返回它。如果要返回节点,请不要释放它。现在,您返回的是一个指针,指向释放节点之前的位置。这有什么用?寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个。以便我可以在主函数中打印我已删除的数据。@iloveyovirus

当我在main()函数中打印被删除节点的数据时,它似乎输出了一个随机数,我的错误是什么?任何人都请帮忙

您可以
释放
返回
节点。如果要释放节点,请不要返回它。如果要返回节点,请不要释放它。现在,您返回的是一个指针,指向释放节点之前的位置。这有什么用?

寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个。以便我可以在主函数中打印我已删除的数据。@iloveyovirus,除非您已删除它。所以它不再存在了。在你释放它之后,它就不再存在了。。。(可能是这样,但不能保证),通常函数地址空间在返回后被擦除。
struct Node* Dequeue(struct Queue *queue)
{
struct Node *temp = queue->front;
if (temp == NULL)
{
    printf("Nothing to delete");
    return temp;
}
else if (temp->next == NULL)
{
    free(temp);
    queue->front = NULL;
    queue->rear = NULL;
    printf("Successfully delete.");
    return temp;
}
else
{
    queue->rear = queue->rear->next;
    free(temp);
    printf("Successfully delete.");
    return temp;
}
}