Franchement, je rencontre là un mystère que je ne suis pas prêt de comprendre.
Explication :
J'ai deux matrices que je déclare bien, que j'initialise bien ...
Je fais appel à ces matrices avec une fonction pour les modifier.
Je fais mes calculs : je les affiche à l'intérieur de la fonction. Tout va bien !
Par contre, dans le main, ce qui est incroyable : c'est que la première n'affiche que la première ligne, la seconde s'affiche entièrement.
Je suis sur le cul !
Etant donné que le code est tentaculaire, je vais poster ici le main et la fonction :
Code :
- main(){
- // Déclarations
- double A[3][3];
- double B[3][3];
- int i;
- int j;
- // Initialisation
- for (i=0;i<=2;i++){
- for (j=0;j<=2;j++) {
- A[i][j] = 0.0;
- }
- }
- // Pareil pour B ...
- for (i=0;i<=2;i++){
- for (j=0;j<=2;j++) {
- B[i][j] = 0.0;
- }
- }
- Calcul(A,B);
- printf("Résultat Main : \n" );
- printf(" Matrice A \n" );
- for (i=0; i<=2;i++){
- printf("%e %e %e \n", A[i][0],A[i][1],A[i][2]);
- }
- printf(" Matrice B \n" );
- for (i=0; i<=2;i++){
- printf("%e %e %e \n", B[i][0],B[i][1],B[i][2]);
- }
- }
|
Dans un autre fichier ...
Code :
- Calcul(double A[3][3], double B[3][3]) {
- // je fais mes calculs supposons que A est remplie de 1 et B de 2 ...
- // J'affiche : le résultat est bon !
- }
|
Résultat pour le main :
Code : Console
Citation :
Résultat Fonction : Matrice A
1 1 1
1 1 1
1 1 1
Matrice B
2 2 2
2 2 2
2 2 2
==============
Résultat Main :
Matrice A
1 1 1
Matrice B
2 2 2
2 2 2
2 2 2
|
Le compilo me dit rien, pas de segmentation fault ... que dalle !
Autre bizarrerie, la matrice que j'appelle ailleurs, arrive à destination complète et bien remplie : le problème concerne bel et bien l'affichage ...
Qu'est ce que j'ai fais de mâââl ?
Merci d'avoir lu!
Message édité par LaTex_man le 06-08-2008 à 15:00:11