Ragazzi sarà un errore banale ma non lo capisco anche perché sono sicuro di seguire alla lettera le slides della lezione. ma comunque ecco quello che faccio
fuori dal main dichiaro la struttura albero e le funzioni di creazione in questo modo
codice:
struct albero{
       int inf;
       struct albero*sx;
       struct albero*dx;
       };
       
struct albero*crea_abr(void);
void inserisci_nodo(struct albero**,int);
nel main mi dichiaro una variabile radice e richiamo la funzione crea_abr
codice:
radice=crea_abr();
e poi dentro la funzione eseguo questi procedimenti
codice:
struct albero*crea_abr(void){
       struct albero*q=NULL;
       int x;
       printf("inserisci elemento nell'albero premi 0 per terminare\n");
       do{
                         scanf("%d",&x);
                         if(x!=0) inserisci_nodo(&q,x);
                         }
                         while(x!=0);
       return q;
       }
       
void inserisci_nodo(struct albero**q,int x){
     if(*q==NULL){
                   *q=(struct albero**)malloc(sizeof(struct albero *)) 
                 (*q)->inf=x;
                  (*q)->sx=NULL;
                  (*q)->dx=NULL;
                  }
                  else{
                       if(x<=(*q)->inf) inserisci_nodo(&((*q)->sx),x);
                       else inserisci_nodo(&((*q)->dx),x);
                       }
     }
ma all'atto di compilare ho questo errore:
In function `void inserisci_nodo(albero**, int)':
linea 42 `malloc(12u)' cannot be used as a function