facendo diversi test va in loop appena vede l istruzione *p=NULL.
ho provato a fare quest altra versione con void.
mi va in loop subito dopo la printf("creazione albero \n");codice:#include <stdio.h> #include <malloc.h> typedef struct nodo { int info; struct nodo *sinistro; struct nodo *destro; }nod; int vuoto(nod **rad) { if((*rad))/*rad == NULL*/ return 0;/*albero vuoto*/ else return 1;/*albero non vuoto*/ } void inserisci(nod **punt,int numero) { if (vuoto(punt))/*se punt==NULL*/ { punt=(nod**)malloc(sizeof(nod));/*inserimento valore*/ (*punt)->info=numero; (*punt)->sinistro=NULL; (*punt)->destro=NULL; } else { if (numero>(*punt)->info)/*scorriamo a destra*/ inserisci(&(*punt)->destro,numero); else /*scorriamo a sinistra*/ inserisci(&(*punt)->sinistro,numero); } } void crea_albero(nod **p) { int val; do { printf("INSERIRE VALORE : \n"); scanf("%d", &val); if (val!=0) /*possiamo inserire il valore*/ inserisci(p,val); } while (val!=0); } int main() { nod **rad; printf("creazione ALBERO \n"); *rad=NULL; printf("chiamo la funzione \n"); crea_albero(rad); }
![]()
spero mi aiutate

Rispondi quotando