Originariamente inviato da Lasentinella
Ah ecco, non avevo pensato a quello Però volendo lasciare un tipo "generico" come posso stabilire la dimensione di quel void*? Cioè, come posso sapere a priori che dimensioni dargli?
Quando nell'allocazione di memoria utilizzi la dimensione di un puntatore ad un oggetto di tipo void, cioè sizeof(void *), questa ti restuituirà la dimensione di un qualsiasi puntatore. Ovvero 4 byte per sistemi a 32bit e 8 byte per sistemi a 64bit.

codice:
array=(void**)malloc((sizeof(void*))*capacitaIniziale);
Stai creando un vettore di puntatori, non un array di caratteri. Quei puntatori sono indirizzi di memoria che potranno essere poi eventualmente sovrascritti per puntare a dati di tipo voluto.