salve a tutti e grazie a chiunque risponderà a questo messaggio.
vado dritto al sodo : la funzione che devo scrivere prende in input un struttura ad albero binario(completa di tutti i nodi)
e la deve trasformare in una matrice.
con h altezza albero e f numero di foglie quindi sarà una matrice (h+1)xf

il problema è questo e non riesco a capire dov'è l'errore: per gestire dinamicamente gli array devo usare vettori di puntatori
e quindi creo l'array di puntatori con delle calloc e ognuno di essi punta a una riga .
Quando vado a fare delle stampe per vedere se funziona non da segmentation fault ma non stampa nulla! ecco la piccola porzione di codice su cui sto testando il
funzionamento:


codice:
typedef int** matrice; 

void stampa(int n,matrice a) {     
       int i,j;      
       for (i=0;i<n;i++)          
             for(j=0;j<n;j++)               
                  printf("%d ",a[i][j]);           
             printf("\n"); 
} 

int main() {      

       matrice a;      
       int n = 3;     
       a = (matrice)calloc(n,sizeof(*a));      
       if (!a) {          
              printf("Errore nella calloc\n");          
       }        
       int i,j;  
       for (i=0;i<3;i++) {           
             a[i] = (int*)calloc(n,sizeof(**a));            
             if (!a[i]) {
                     printf("Errore nella calloc\n");                
       }      
       for (i=0;i<n;i++) {           
              for (j=0;j<n;j++)                
                      a[i][j] = 0;      
       }      
      
       stampa(n,a);  
}