mi sembra strano... una funzione del genere dovrebbe funzionare...

void funzione(x *p) //Stampa la struttura
{
printf("%s\n", p->s);
printf("%s\n", p->r);
}