#include #include int** creerMatrice(size_t nbL, size_t nbC) { ... } void detruireMatrice(int** mat) { ... } long long calculerNombreOccurrences(int** mat, size_t nbL, size_t nbC, int v) { long long cpt = 0; if (mat != NULL) { for (int l = 0; l < nbL; l++) { for (int c = 0; c < nbC; c++) { if (mat[l][c] == v) { cpt++; } } } } return cpt; } void initialiser(int** mat, size_t nbL, size_t nbC, int v) { if (mat != NULL) { for (int l = 0; l < nbL; l++) { for (int c = 0; c < nbC; c++) { mat[l][c] = v; } } } } int main(void) { int** m1 = creerMatrice(1, 1); printf("m1 : %p\n", m1); initialiser(m1, 1, 1, 10); printf("Nombre de valeurs egales a 10 : %lld\n", calculerNombreOccurrences(m1, 1, 1, 10)); printf("\n"); detruireMatrice(m1); size_t nbC = 5000000; printf("Nombre de colonnes : %zu\n", nbC); m1 = NULL; for (int i = 1; i <= 25; i++) { size_t nbL = i * 200; int** m = creerMatrice(nbL, nbC); printf("Matrice de %4zu lignes : %20p\n", nbL, m); initialiser(m, nbL, nbC, i); printf("Nombre de valeurs : %20lld\n", calculerNombreOccurrences(m, nbL, nbC, i)); detruireMatrice(m); m = NULL; } return 0; }