2

私はそれを理解することはできません、これは私がこれまで持っているものです。

しかし、関数Enqueue()Head&Tailオブジェクトを main メソッドから変更していません。

どうすればいいですか?

#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);

}
4

1 に答える 1

8

ポインタを参照渡しする方法は? 参照渡し:

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

その他の問題:

Queue_type *temp;
temp->data = item;

未定義の動作です。

必須リンク。あなたは C++ 環境で C コードを書いています。ただしないでください。

于 2012-11-20T17:56:57.590 に答える