Mi sapreste dire per favore se il seguente frammento di codice è corretto?

Vtmp=V;

if ( ( rA=new int[n] )==NULL){ printf("ERRORE!\n"); exit(0); }

for (i=0; i<n; i++)
V[i]=Vtmp[i];

delete[] Vtmp;

Si tratterebbe di una reallocazione di memoria.
Mi da errore, accesso violato

Aiutatemi

Ciao, Danilo