如何通过引用传递结构?

the*_*ser 1 c++ queue

我无法弄明白,这是我到目前为止所拥有的.

但该函数Enqueue()不会更改main方法中的Head&Tail对象.

我该怎么做呢?

#include <stdio.h>

typedef struct queuenode{
    int data;
    struct queuenode *next;
} Queue_type;

void Enqueue( Queue_type *head, Queue_type *tail , int item)
{
    Queue_type *temp;
    temp->data = item;
    temp->next = NULL;
    if (tail == NULL){//if first node
        head=temp;
        tail=temp;
    }
    else{
        tail->next = temp;
        tail = temp;
    }
}

void main(void)
{
    Queue_type *Head;
    Queue_type *Tail;

    Head = NULL;
    Tail = NULL;

    printf("\n[*]Enter Number to Enqueue : ");
    scanf("%d", &item);
    Enqueue(Head, Tail, item);

}
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 8

如何通过引用传递指针?通过引用传递:

void Enqueue( Queue_type *&head, Queue_type *&tail , int item)
Run Code Online (Sandbox Code Playgroud)

其他问题:

Queue_type *temp;
temp->data = item;
Run Code Online (Sandbox Code Playgroud)

是未定义的行为.

强制性链接.您正在C++环境中编写C代码.只是不要.