Ho un esercizio da fare sulla creazione di una lista,l'inseriemnto di elementi in testa e la funzione di visualizzazione della lista stessa ma il programma non funziona e non capisco quale sia il problema
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct nodo{
int num;
struct Nodo *next;
};
typedef struct nodo Nodo;
void inserireNodoInTesta (int);
void visualizza_lista(Nodo *, int);
int main(){
/**
Scrivere una funzione che inserisce un nodo in testa alla lista. Utilizzare la funzione per
popolare una lista di numeri interi positivi inseriti dall'utente. L'acquisizione termina
quando il valore inserito è negativo.
**/
int ciclo;
printf("Quanti numeri vuoi inserire?: ");
scanf("%d", &ciclo);
inserireNodoInTesta(ciclo);
return 0;
}
void visualizza_lista(Nodo *l2, int ciclo){
int i;
printf("\n lista ---> ");
for(i=2; i<=ciclo; i++){
printf("%d", l2->num);
printf(" ---> ");
l2 = l2->next;
}
l2=NULL;
printf("NULL\n\n");
}
void inserireNodoInTesta (int ciclo){
int i;
Nodo* l1=NULL;
Nodo* l2=NULL;
l1=(Nodo *)malloc(sizeof(Nodo));
printf("Inserisci 1 elemento della lista: ");
scanf("%d", &l1->num);
l2=l1->next;
for(i=2; i<=ciclo; i++){
l2=(struct Nodo *)malloc(sizeof(Nodo));
printf("\nInserisci il %d elemento della lista: ", i);
scanf("%d", &l2->num);
l2 = l2->next;
}
visualizza_lista(l1, ciclo);
}