beh certo devi eseguire un cast.
come fa il compilatore a copiare una cosa di cui non sa la dimensione?

cmq la funzione non funziona

codice:
void** array;
array=(void**)malloc((sizeof(void*))*capacitaIniziale);
 for(i=0;i<capacitaIniziale;i++)
       	  array[i]=NULL;
con sizeof(void*) il compilatore fa errore oppure ritorna 0 (il che ovviamente non va bene)
la tua funzione dovrà avere anche un parametro con il quale gli dici la dimensione del singolo componente dell'array.