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 facciate 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.
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;
}