lista - wczytanie i wypisanie

0

Chcę napisać program, który wczyta na listę liczby od 1 do 10, a potem je wypisze. Proszę o pomoc w znalezieniu błędów.

#include <stdio.h>
#include <stdlib.h>
typedef struct element {
    int pole;
    struct element* next;
} element, *lista;

void ini(lista* h)
{
    *h = NULL;
}

void dodaj(lista* h, lista u)
{
    *h = u;
    *h = (*h)->next;
}
lista nowy(int a)
{
    lista u;
    u = malloc(sizeof(element));
    u->pole = a;
    u->next = NULL;
}
void druk(lista* head)
{
    lista u = (*head);
    while (u != NULL) {
        printf("%d ", u->pole);
        u = u->next;
    }
}
int main()
{
    lista head;
    ini(&head);
    int i;
    lista w = head;
    for (i = 1; i < 11; i++) {
        dodaj(&w, nowy(i));
    }
    druk(&head);
}
0

W funkcji nowy brakuje:

return u;
0

Fakt, cały czas coś jeszcze jest źle :(

0
void dodaj(lista* h, lista u)
{
    *h = u;
    *h = (*h)->next;    // <- tutaj przypisujesz NULL (bo u->next jest zawsze NULL)
}
0

Pomożesz poprawić, bo nie ma pomysłu:(

1 użytkowników online, w tym zalogowanych: 0, gości: 1