array= (char *)malloc(sizeof(char) * dim_iniziale);
ho fatto qualche prova. il programma pare che funzioni sia con

array= (char *)malloc(sizeof(char) * dim_iniziale);

che con:

array= (char *)malloc(dim_iniziale);

quale dei due è corretto? se lo è uno dei due...