Bonjour,
Voici mon problème, je vous montre deja le code source :
#define MAXLIG 25
#define MAXCOL 25
/* la structure d'un tableau */
typedef struct Matrice Matrice;
struct Matrice
{
int nb_lig;
int nb_col;
int tab[MAXLIG][MAXCOL];
};
/* les prototypes */
void afficherMatrice(Matrice t1);
void recopierMatrice(Matrice t1,Matrice t2);
void initialiserMatrice(Matrice t1,int valeur);
void remplirMatrice(Matrice t1);
void matriceIdentite(Matrice t1);
void sommeMatrices(Matrice t1,Matrice t2,Matrice t3);
void multiplicationMatrices(Matrice t1,Matrice t2,Matrice t3);
void transposerMatrice(Matrice t1);
/* Le main */
int main (int argc, char *argv[]){
Matrice tab_matrices[100];
int nb_matrices = 0;
int choix = 1;
int choix2;
int choix_matrice;
int valeur;
int x,y;
printf("\n Valeur : ");
scanf("%d",&valeur);
initialiserMatrice(tab_matrices[nb_matrices],valeur);
afficherMatrice(tab_matrices[nb_matrices]);
}
/* Les fonctions sur les matrices */
void initialiserMatrice(Matrice t1,int val){
int i,j;
printf("x = %d , y = %d ",t1.nb_lig,t1.nb_col);
for(i=0;i<t1.nb_lig;i++){
for(j=0;j<t1.nb_col;j++){
t1.tab[i][j] = val;
}
}
afficherMatrice(t1);
}
void afficherMatrice(Matrice t1){
int i,j;
for(i=0;i<t1.nb_lig;i++){
for(j=0;j<t1.nb_col;j++){
printf("| %d |",t1.tab[i][j]);
}
printf("\n");
}
}
Voila donc dans ma fonction initialiserMatrice, la matrice en paramètre t1 est bien remplie par la valeur en 2eme paramètre
Mais tab_matrices[nb_matrices] qui est placé en paramètre d'initialiser dans le main n'est pas remplie, pourtant comme elle est en paramètre , elle devrait se remplie correctement ?
Donc si ma valeur est 8 par exemple et que j'affiche t1 j'aurais que des 8 mais si j'affiche tab_matrices[nb_matrices] en dehors de la fonction , j'ai que des 0 ..
Et je ne comprend pas pourquoi