Buongiorno,
Ho un problema con un esercizio che mi richiede di creare una struttura Libretto in cui all'interno vi è una struttura chiamata Studente formata da nome, cognome, matricola.
Il mio primo sviluppo è stato creare un array di libretto per poi far inserire tramite un ciclo for tutti gli studenti.
Il problema è che nell'inizializzazione dei campi di studente il compilatore mi da Segmentation Fault.
Purtroppo dovendo utilizzare il metodo di Information Hiding in basso troverete solo il codice della libreria creata da me.
Qualcuno può spiegarmi dove sbaglio?
Allego qui il codice che ho scritto:
#define MAX_STUD 10
#define MAX_ES 5
struct libretto{
struct studente *studente;
}libretto[MAX_STUD];
struct studente{
char *nome;
char *cognome;
double matricola;
};
Libretto newLibretto(){ //Funzione che alloca la memoria necessaria
Libretto libretto=malloc(sizeof(struct libretto)*MAX_STUD);
return libretto;
}
void insertStudents(Libretto lib[]){ //Funzione che inserisce gli studenti nel libretto
char *nome, *cognome;
double matricola;
int size,i;
printf("Quanti studenti vuoi inserire? ");
scanf("%d", &size);
for(i=0;i<size;i++){
printf("Inserisci nome: ");
scanf("%s", lib[i]->studente->nome);
printf("Inserisci cognome: ");
scanf("%s", lib[i]->studente->cognome);
printf("Inserisci la matricola: ");
scanf("%lf", &matricola);
lib[i]->studente->matricola=matricola;
}
}