Как передать структуру по ссылке?

Я не могу понять это, это то, что я до сих пор.

Но функция Enqueue() не меняет 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);

}

1

Решение

Как передать указатель по ссылке? Передайте это по ссылке:

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

Другие проблемы:

Queue_type *temp;
temp->data = item;

является неопределенным поведением.

Обязательная ссылка. Вы пишете код C в среде C ++. Просто не надо.

8

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector