Voglio allocare dinamicamente una matrice di dimensione 3 passandola per indirizzo alla funzione.
Questo è il codice:
Al valore j = 1 da un errore di segmentazione che non riesco a capire come risolvere.codice:void alloca(unsigned char ****m,int r, int c, int p) { int i,j; *m = malloc(r*sizeof(char*)); for(i = 0; i < r; i++) { *m[i] = malloc(c*sizeof(char*)); for(j = 0; j < c; j++) *m[i][j] = malloc(p*sizeof(char)); } }
Posto il codice della funzione analoga (che non da alcun errore) dove la matrice non viene passata per indirizzo
codice:unsigned char ***alloca(int r, int c,int p) { int i,j; unsigned char ***m; m = malloc(r*sizeof(char*)); for(i = 0; i < r; i++) { m[i] = malloc(c*sizeof(char*)); for(j = 0; j < c; j++) m[i][j] = malloc(p*sizeof(char)); } return m; }

Rispondi quotando