Originariamente inviato da premoli
codice:
    scanf("%d", s->str);
codice:
    scanf("%s", &s->str);
s è un puntatore.
nel primo codice hai un puntatore s di cui recuperi l'indirizzo di str.
nel secondo codice componi una reference del puntatore (chè alla fine è il puntatore stesso) e quindi è come se eseguissi il primo codice.

s è come se fosse una variabile normale, facendo &s recuperi l'indirizzo dell'area puntata dal puntatore.