Buon pomeriggio. Sono nuovo del forum e mi scuso in anticipo se non ho rispettato qualche regola riguardo al forum.
Espongo in breve il mio problema:
ho intenzione di creare un programma in c utilizzando gli alberi binari ,dove il campo info della strutta albero punta ad una struttura con con vari tipi di dati non omogenei es(char int , tipo struttura). ho scritto il codice riguardante la funzione Talbero crea(). Appena mando in esecuzione il programma crasha all'istante. Ora quello che chiedo non è tanto un pezzo di codice buttato qui sopra, cosa che credo voi no facciateper principio. Vi sarei veramente grato se riusciste a farmi capire come posso risolvere questo problema anche generalizzandolo. Allego la parte del codice che non mi convince. Grazie ancora per l'attenzione.
codice:Talbero crea(Talbero a, Tprodotto p) { char buff[30]; if(a == NULL) { /* creazione del primo nodo*/ printf("Inserisci il prodotto: \n"); printf("Codice del prodotto:"); scanf("%d", &(p.cod)); printf("descrizione:"); scanf("%s", buff); p.nome = malloc(strlen(buff)+1); strcpy(p.nome, buff); printf("Inserire la data di scadenza (aa mm): "); scanf("%d %d", &(p.data.anno), &(p.data.mese)); a->sx= NULL; a->dx= NULL; }else{ do{ /* ricerca del punto di inserimento*/ if(p.cod > a->info.cod) a->dx= crea(a->dx, p); else if(p.cod< a->info.cod) a->sx= crea(a->sx , p); }while(a->info.cod == NULL); } return a; }

per principio. Vi sarei veramente grato se riusciste a farmi capire come posso risolvere questo problema anche generalizzandolo. Allego la parte del codice che non mi convince. Grazie ancora per l'attenzione.
Rispondi quotando
