如何通过引用传递结构?

时间:2012-11-20 17:55:25

标签: c++ queue

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

但是功能Enqueue()并没有改变Head& main方法中的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);

}

1 个答案:

答案 0 :(得分:8)

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

void Enqueue( Queue_type *&head, Queue_type *&tail , int item)

其他问题:

Queue_type *temp;
temp->data = item;

是未定义的行为。

Mandatory link.您正在C ++环境中编写C代码。只是不要。