Intanto mi sembra che questa
for (i=0;i<C;i++) (*B)[i]=(studente *)malloc(A*sizeof(struct studente*));
debba essere
for (i=0;i<C;i++) (*B)[i]=(studente *)malloc(A*sizeof(struct studente));
Intanto mi sembra che questa
for (i=0;i<C;i++) (*B)[i]=(studente *)malloc(A*sizeof(struct studente*));
debba essere
for (i=0;i<C;i++) (*B)[i]=(studente *)malloc(A*sizeof(struct studente));
No MP tecnici (non rispondo nemmeno!), usa il forum.