codice:
#include<stdio.h>
#include<stdlib.h>
typedef struct nodo *lista;
typedef struct nodo {
        int val;
        nodo* next;
        } Nodo;
        
        
lista insert(lista *L, int valore){
      Nodo *corrente;
      Nodo *precedente;
      Nodo *nuovo;
      nuovo=malloc(sizeof(Nodo));
      if(nuovo==NULL){
                   printf("mem esaurita");
                   return NULL;}
      nuovo->val=valore;
      nuovo->next=NULL;
      
      corrente = *L;
      precedente = NULL;
      
      while(corrente->next!=NULL && valore<corrente->val){
      precedente=corrente;     
      corrente=corrente->next;
      }
      if(precedente==NULL){
      nuovo=*L;
      nuovo->next==NULL;
      }
      else{
           nuovo->next=corrente;
           precedente->next=nuovo;
           }
           return *L;
      }
      
int main (){
    lista concat = NULL;
    int val;
    printf("inserisci valore nodo, 0 termina:");      
    while(scanf("%d", &val)!=0){
    insert(&concat, val);
    printf("inserisci valore nodo:");
    }
    system ("PAUSE");
    return 0;
    }
l'errore è (riga 14, la riga della malloc)
In function `nodo* insert(nodo**, int)':
invalid conversion from `void*' to `Nodo*'



edit: ho provato a fare il cast sulla malloc, quindi nuovo=(Nodo*)malloc(sizeof(Nodo));
ora nessun errore di sintassi, ma evidentemente c'è qlc errore logico xke il programma crasha