[ C ] - question de newbie !!

- question de newbie !! [ C ] - C - Programmation

Marsh Posté le 28-12-2003 à 18:03:53    

Pourquoi ce code tout con ne marche pas... ?
 

Code :
  1. void afficherMatrice(float **X, int N)
  2. {
  3.   int i,j;
  4.   for( i=0; i<N; i++) {
  5.     for( j=0; j<N; j++) {
  6.       printf("%f ",X[i][j]);
  7.     }
  8.     printf("\n" );
  9.   }
  10.  
  11.   return;
  12. }
  13. main(int argc, char **argv)
  14.   float X[3][3];
  15.   afficherMatrice(X,3);
  16. }


 
Il imprime les 2 premières lignes de la matrice, mais pour la 3ème il me sort une segmentation faute :??:

Reply

Marsh Posté le 28-12-2003 à 18:03:53   

Reply

Marsh Posté le 28-12-2003 à 18:41:33    

oulà...
ton **X est un tableau de pointeurs, et non un tableau à deux dimensions. (comme l'est le X[3][3] dans le main.
 
soit tu fais:
afficherMatrice( float X[][3], int N) (N superflu dans un sens)
 
soit afficherMatrice( float *X, int N )  ou (float X[])
avec printf("%f ",X[i*N+j]);
 
si j'ai fait ou dit des bêtises m'en fout :D


Message édité par bjone le 28-12-2003 à 18:42:19
Reply

Marsh Posté le 28-12-2003 à 18:53:30    

Ok ça marche merci !! Je n'avais pas réalisé que **X était un tableau de pointeurs...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed