Innanzitutto grazie a entrambi per le risposte.
Sto compilando il file (Main.c) come file C (impostato dalle impostazioni di Visual Studio) e ci è stato insegnato in aula che compilando in C il casting non è necessario, bensì è necessario in C++, è corretto? L'ho omesso per questo motivo, in quanto il professore non lo accetta in C puro.
Riguardo l'asterisco, ho corretto in questo modo:
Ma l'errore si ripresenta nello stesso punto!codice:void allocaClasse(int A, struct studente ***B,int C){ int i,j; *B=malloc(C*sizeof(struct studente*)); for (i=0;i<C;i++) (*B)[i]=malloc(A*sizeof(struct studente)); for (i=0;i<C;i++) for(j=0;j<A;j++){ printf("Inserire il cognome dello studente %d: ",j+1); scanf("%s",&(*B)[i][j].cognome); printf("Inserire il nome dello studente %d: ",j+1); scanf("%s",&(*B)[i][j].nome); printf("Inserire il voto dello studente %d: ",j+1); scanf("%d",&(*B)[i][j].voto); } }
Riguardo il controllo sulle malloc ti ringrazio del consiglio, metterò dei controlli. Comunque in questo caso non sta restituendo NULL in quanto la funzione stampa funziona.

Rispondi quotando