Il problema non e' la struttura, ma il fatto che usi un puntatore ad una struttura senza allocare la memoria ...

Il puntatore

str *studente;

e' solamente il puntatore (l'indirizzo) della struttura, ma lo spazio della struttura esiste solamente se lo allochi con la malloc ...