Lo hai capito da solo.

Tu la seconda volta deallochi una cosa non allocata.

forse perchè mi rende libera una zona già libera e per questo la zona puo essere puntata da due puntatori?
codice:
int main (void) {
  int *p, *p2;
  p = new int; 
  p2 = p;
  *p = 10;
  delete p2;
  return (0); 
}
E' la stessa cosa..con due puntatori.