Rettifico:
codice:
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
// array di puntatori a void*
// init:
void **A = (void**)malloc(sizeof(void*)*5);
for(int i=0; i<5; i++){
A[i] = (void*)malloc(sizeof(void*));
}
// end init
// array di interi
int *B = (int*)malloc(sizeof(int)*5);
for(i=0; i<5; i++){
B[i] = i;
}
// A = {&B[0],&B[1],&B[2],&B[3],&B[4]}
for(i=0; i<5; i++){
A[i] = &B[i];
}
// scorro l'array di puntatori a void*
for(i=0; i<5; i++){
printf("\n%d", *((int*)A[i]));
}
}
Era errata l'allocazione dinamica dell'array di puntatori a void. 
Ciao!