Io spesso uso malloc così:


variabile = (tipo *)malloc(sizeof(tipo));

non specifico n*sizeof(tipo)!!!

Questo per motivi di dinamicità!!! Non so mai quanti elementi allocare quindi anche se quello che sto creando è un vettore (che di solito vuole la sua dimensione) utilizzo la bella proprietà della lista che non ha "limite" di grandezza!!!