Occhio a questa

pn=&x;

che è sbagliata (e pericolosa).

Cambia con

*pn = x;