#include <stdio.h> #include <stdlib.h> int** lire_mat( int nbl, int nbc ) { int i,j; int **t; t = (int **) malloc(nbl * sizeof(int*)); for(i=0;i<nbl;i++) t[i] = malloc(nbc * sizeof(int)); for(i=0;i<nbl;i++){ for(j=0;j<nbc;j++){ printf("Ligne %2d Colonne %2d : ",i,j); scanf("%d", &t[i][j]); } } return t; } void affich_mat( int** mat, int nbl, int nbc ) { int i, j; printf( " " ); for ( i = 0 ; i < nbc ; i++ ) printf( " %4d", i ); printf( "\n " ); for ( i = 0 ; i < nbc ; i++ ) printf( "-----" ); printf( "\n" ); for ( i = 0 ; i < nbl ; i++ ) { printf( " %2d |", i ); for ( j = 0 ; j < nbc ; j++ ) { printf( " %4d", mat[i][j] ); } printf( "\n" ); } printf( "\n" ); } void liberer(int** mat, int nbl, int nbc) { int i; for ( i = 0 ; i < nbl ; i++ ) if (nbc >0) free(mat[i]) ; if (nbl >0) free(mat) ; } main() { int **t ; int n,m ; printf("Nb de lignes ? "); scanf("%d", &n); printf("Nb de colonnes ? "); scanf("%d", &m); t = lire_mat(n,m); affich_mat(t, n,m) ; liberer(t,n,m); // affich_mat(t, n,m) ; return 0; }