Non va bene la dichiarazione di r e x che hai scritto all'inizio ...

r deve essere un elemento di tipo lista e x deve essere un puntatore a lista

codice:
    lista r;                 
    struct lista *x;
    x=r.punt;
Studia bene il capitolo dei puntatori in un qualsiasi libro di C ...