Ciao a tutti!!!
Stavo provando a allocare dinamicamente le matrici.
A dire il vero il programma che ho scritto funziona però vorrei conferma da qualcuno più esperto di me per vedere se salto qualcosa.
Vi ringrazio anticipatamente![]()
codice:#include <stdio.h> #include <stdlib.h> void allocaMat(int ***, int *, int *); void insMat(int **, int, int); void stampa(int **, int, int); void liberaMat(int ***, int); int main() { int **mat=NULL; int r, c; allocaMat(&mat, &r, &c); insMat(mat, r, c); stampa(mat, r, c); liberaMat(&mat, r); return 0; } void liberaMat(int ***m, int r) { int i; for(i=0; i<r; i++){ free((*m)[i]); } free(*m); } void stampa(int **m, int r, int c) { int i, j; printf("\n\n"); for(i=0; i<r; i++){ for(j=0; j<c; j++){ printf("%d ", m[i][j]); } printf("\n"); } } void insMat(int **m, int r, int c) { int i, j; for(i=0; i<r; i++){ for(j=0; j<c; j++){ printf("\nmatrice[%d][%d] = ", i+1, j+1); scanf("%d", &m[i][j]); } } } void allocaMat(int ***m, int *r, int *c) { int i; printf("\nInserire il numero di righe: "); scanf("%d", r); printf("\nInserire il numero di colonne: "); scanf("%d", c); *m=(int **)malloc((*r)*(sizeof(int *))); if(*m==NULL){ printf("\n\nAllocazione impossibile..."); exit(1); } for(i=0; i<*c; i++){ (*m)[i]=(int *)malloc((*c)*sizeof(int)); if(((*m)[i])==NULL){ printf("\n\nAllocazione impossibile..."); } } }

Rispondi quotando