Bonjour,
Voici le premier programme qui permet d'initialiser une matrice à 0 ci dessous :
#include <stdio.h>
#include <stdlib.h>
int matrice[2][3] =
{
{1, 2, 3},
{4, 5, 6},
};
void initialisation(int (*pMatrice)[2][3])
{
for(int i = 0; i < 2; i++)
for(int j = 0; j < 3; j++)
(*pMatrice)[i][j] = 0;
for(int i = 0; i < 2; i++)
for(int j = 0; j < 3; j++)
printf("pMatrice[%d][%d] = %d\n",i, j, (*pMatrice)[i][j]);
}
int main(void)
{
initialisation(&matrice);
return EXIT_SUCCESS;
}
Voici le deuxième programme qui permet d'initialiser une matrice à 0 :
#include <stdio.h>
#include <stdlib.h>
int matrice[2][3] =
{
{1, 2, 3},
{4, 5, 6},
};
void initialisation(int (*pMatrice)[2][3])
{
for(int i = 0; i < 2; i++)
for(int j = 0; j < 3; j++)
*pMatrice[i][j] = 0;
for(int i = 0; i < 2; i++)
for(int j = 0; j < 3; j++)
printf("pMatrice[%d][%d] = %d\n",i, j, *pMatrice[i][j]);
}
int main(void)
{
initialisation(&matrice);
return EXIT_SUCCESS;
}
Je ne comprends pas pourquoi ces deux programmes font exactement la même chose ?
Moi je pensais que seul le premier c'est à dire (*pMatrice) fonctionne c'est à dire un pointeur sur matrice.
Dans le deuxième programme on a *pMatrice qui est une matrice de pointeur d'entier et la ça colle plus du tout.
Es ce que vous avez une explication ?