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); }

Rispondi quotando
