Originariamente inviato da Vre
n = sizeof(*a);

mi rende sempre n=4...
Appunto, quella è la dimensione, in byte, del puntatore a intero *a.
n è definito dinamicamente...
il vettore viene prima creato con malloc e poi gli rialloco lo spazio che gli serve via via!
Devi tenere un indice con il numero dei caratteri immessi dall'utente.
Per essere più precisi bisognerebbe vedere il codice che sati utilizzando.