#include #include int **allocate_matrix(int rows, int cols) { int **matrix = malloc(rows * sizeof(int *));//creation du tableau X hauteur if (!matrix) return NULL; for (int i = 0; i < rows; i++) { matrix[i] = malloc(cols * sizeof(int));//creation des colonnes //on free les cols si la matrice n'existe pas if (!matrix[i]) { for (int j = 0; j < i; j++) free(matrix[j]); free(matrix); return NULL; } } return matrix; } void free_matrix(int **matrix, int rows) { if (!matrix) return; //ajout for (int j = 0; j < rows; j ++) free(matrix[j]); free(matrix); return; } int main(void) { int rows = 5; int cols = 5; int **matrix = allocate_matrix(rows, cols); if (!matrix) { return EXIT_FAILURE; } for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { matrix[i][j] = i * cols + j; } } free_matrix(matrix, rows); //free(matrix); return EXIT_SUCCESS; }