L'errore sta nel fatto che se fai
codice:
double *pi;
// Uso il cout anche se è c++ solo per comodità
cout << sizeof(pi);
tu gli chiedi la dimensione in byte di un PUNTATORE a double e non di un double!