Sì ovvio perché nel doppio ciclo for di assegnazione e in quello di stampa stai trattando m come se fosse una matrice, cioè un puntatore a puntatore, ma tu lì hai un puntatore a puntatore a puntatore...
Devi modificare così
per il ciclo di inizializzazione... e praticamente la stessa cosa per la stampa.codice:for(i=0;i<r;i++) for(j=0;j<c;j++) (*m)[i][j] = 0;
Con la notazione a puntatore, questa riga
(*m)[i][j] = 0;
dovrebbe equivalere a
*(*(*x + i) + j);
EDIT: comunque se devi inizializzare tutti gli elementi della matrice a 0 (e non ad altri valori), tanto vale fare l'allocazione dinamica con la calloc() anziché la malloc()...

Rispondi quotando