Путаница при вставке структуры в связанный список (C) - PullRequest
0 голосов
/ 28 марта 2020

У меня есть задание с некоторыми функциями, данными мне, а другие должны быть выполнены мной. Одна из функций, которые я выполняю сам, - это когда я добавляю отдельные параметры в объект структуры, а затем вызываю функцию вставки (которая предоставляется), чтобы поместить этот объект в связанный список. Тем не менее, один из параметров, который функция вставки меня потеряла.

Вот .h.

struct node{
    Task *task;
    struct node *next;
};
typedef struct task{
    char *name;
    int tid;
    int priority;
    int burst;
} Task;

И вот начало моей функции добавления, где я создаю объект и намереваемся вставить его в связанный список.

void add(char *name, int priority, int burst){

    Task task1 = (Task){.name = name, .priority = priority, .burst = burst};
    //insert() here
}

Однако параметры вставки сбивают меня с толку.

void insert(struct node **head, Task *task);

Я знаю, что task1 будет вторым параметром, но я не не знаю, что делать с первым. Как мне вызвать insert внутри моей функции добавления?

Спасибо!

1 Ответ

2 голосов
/ 28 марта 2020

Вам необходимо сохранить переменную заголовка списка где-нибудь, инициализировать на NULL, например:

struct node *list_head = NULL;

Затем передать адрес вашей функции:

insert(&list_head, task);

Причина, по которой вы передать адрес так, чтобы insert мог изменить его так, чтобы он указывал на новый заголовок списка.

...