Guarda che tutti i puntatori utilizzati per allocare memoria, vanno utilizzati alla fine per deallocare la memoria stessa, altrimenti avrai problemi in seguito.

Quindi, NON devi variare il valore dei puntatori ma usarne di temporanei, se e' il caso.

Ovvero

codice:
int *Ptr;

int *tPtr=Ptr;
for(int i=0; i<=N; i++)
{
  *tPtr=i;
  tPtr++
}
Cosi' il valore originale del puntatore potra' SEMPRE essere utilizzato, anche, alla fine, per deallocare la memoria puntata.