#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct nodo{
int num;
struct Nodo *next;
};
typedef struct nodo Nodo;
Nodo * leggi_lista(void);
void visualizza_lista(Nodo *);
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.
**/
Nodo *p, *r, *q;
p=leggi_lista();
r=NULL;
while(p != NULL) {
q = malloc(sizeof(Nodo));
q->num = p->num;
q->next = r;
r = q;
p = p->next;
}
visualizza_lista(r);
return 0;
}
void visualizza_lista(Nodo *p){
printf("Inizio lista ---> ");
while(p != NULL){
printf("%d ---> ", p->num);
p = p->next;
}
printf("Fine lista\n");
}
Nodo *leggi_lista(void) {
Nodo *p, *punt;
punt = NULL;
while(p->num>=0){
p = malloc(sizeof(struct nodo));
printf("Digitare numero da inserire nella lista: ");
scanf("%d", &p->num);
p->next = punt;
punt = p;
}
return(punt);
}
Il programma funziona bene però mi da 4 warning che non capisco
Alle righe 25 27 37 49 mi da "warning: assignment from incompatible pointer type"