[CODE]
q.dato = 5; //ora dato vale 5

pq->dato = 6;

cos'è che sto modificando pq o dato?
in ogni caso ora pq vale un valore intero o una cella di memoria?