Allora. Praticamente vorrei memorizzare in una variabile il campo puntatore (quello che punta alla variabile successiva)

codice:
#include <iostream>   
using namespace std;
int *p,*q,*r;
int *x;
int main()
{ 
    struct lista 
    { 
        string nome; 
        string cognome; 
        int eta; 
        struct lista *punt;
    };

    lista p; 
    cout << "Inserisci il nome = "; 
    cin >> p.nome; 
    cout << "Inserisci il cognome = "; 
    cin >> p.cognome; 
    cout << "Inserisci l'eta = "; 
    cin >> p.eta;
    
    lista q;
    p.punt =&q;
    cout << "Inserisci il nome = "; 
    cin >> q.nome; 
    cout << "Inserisci il cognome = "; 
    cin >> q.cognome; 
    cout << "Inserisci l'eta = "; 
    cin >> q.eta;
    
    lista r;                 
    x=r.punt;  //voglio conservare nella variabile "x" il campo puntatore di "r". qui mi da errore

    system("pause"); 
}