Veramente non funzionano e sono sbagliate.
Dovrebbero essere
Codice:
void f (int *i)
{
scanf("%d", i);
}
oppure
Codice:
void f(s *S)
{
scanf("%d", &S->x);
}
e chiamate con
Codice:
f(&st.x);
f(&st);
Per il resto, l'uso di una o l'altra, č abbastanza indifferente.