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!