Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2339 connectés 

  FORUM HardWare.fr
  Programmation

  [c] probleme de tableau a 2 dimensions passee en parametre de fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] probleme de tableau a 2 dimensions passee en parametre de fonction

n°98763
Psychee
Posté le 10-02-2002 à 23:45:16  profilanswer
 

Bonsoir...
 
J'ai une erreur dans la compilation d'un prog...  l'erreur vient d'un parametre d'une fonction mais je ne sais pas pourquoi  :-(  
 
int resol_etha(int m1, int lx, double matrice_cos[][m1+1], double a0[], double etha1[])
 
il n'accepte pas le matrice_cos[][m1+1], mais accepte matrice_cos[][66].  Pourtant m1 est bien declare avant...
 
si qq peut m'aider ?!

 

[jfdsdjhfuetppo]--Message édité par Psychee--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 10-02-2002 à 23:45:16  profilanswer
 

n°98766
Kristoph
Posté le 10-02-2002 à 23:54:09  profilanswer
 

Il faut que m1+1 soit évalué à la compilation pour pouvoir étre utilisé. Dans ton cas tu ne peux rien faire.
 
Tout ce qui te reste c'est de passé un pointeur à la place de ton tableau et de faire les calculs à la main.
 
Ta fonction devient :
   int resol_etha(int m1, int lx, double * matrice_cos, double a0[], double etha1[])
 
Et dans cette fonction tu fais :
*(matrice_cos+x+y*m1) au lieux de matrice_cos[x][y]
 
Enfin pour appeler resol_etha, tu n'as rien à changer normalement, mais plus proprement il faudrait faire :
 
resol_etha(m1, lx, & matrice_cos[0][0], a0, etha1);

n°98872
BENB
100% Lux.
Posté le 11-02-2002 à 14:03:14  profilanswer
 

Kristoph a écrit a écrit :

Il faut que m1+1 soit évalué à la compilation pour pouvoir étre utilisé. Dans ton cas tu ne peux rien faire.
 
Tout ce qui te reste c'est de passé un pointeur à la place de ton tableau et de faire les calculs à la main.
 
Ta fonction devient :
   int resol_etha(int m1, int lx, double * matrice_cos, double a0[], double etha1[])
 
Et dans cette fonction tu fais :
*(matrice_cos+x+y*m1) au lieux de matrice_cos[x][y]
 
Enfin pour appeler resol_etha, tu n'as rien à changer normalement, mais plus proprement il faudrait faire :
 
resol_etha(m1, lx, & matrice_cos[0][0], a0, etha1);  




generalement on fait une macro pour eviter de se tromper  
"define mat(matrice,m1,x,y) *((matrice)+(x)+(y)*(m1))

n°99095
Psychee
Posté le 11-02-2002 à 22:05:38  profilanswer
 

Ok merci  :-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [c] probleme de tableau a 2 dimensions passee en parametre de fonction

 

Sujets relatifs
XITI : Probleme de scripts !![Java] Problème avec les images
[PHP] Problème de eregi[VB6] Interprétation d'une chaîne comme fonction??? exemple: "sin(x)"
Pointeur de fonction membre en C++ ??HTML : comment fixer la largeur d'un tableau?
[PHP] histoire de tableau et de explode[SQL] Fonction pour modifier le Gras / Ital. dans une requete access
VB - Création d'un tableau[php] probleme de session
Plus de sujets relatifs à : [c] probleme de tableau a 2 dimensions passee en parametre de fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR