Non so se ho capito bene la tua richiesta, ma l'allocazione mi sembra semplice
(struct lista **)malloc(NPUNT * sizeof(struct lista *));
in cui NPUNT e' il numero di puntatori da allocare ...
Ovviamente il risultato dovrà essere assegnato ad un puntatore di tipo struct lista **