tomalille
Messages postés52Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 5 juin 2007
-
4 mai 2006 à 16:50
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
5 mai 2006 à 11:22
bonjour,
j'ai une question qui va vous sembler très bête mais bon...J'ai besoin de faire une fonction ayant un tableau multidimentionnel en paramètre. Qqn pourrait-il m'aider? J'ai fait:
void fonction(const int origine,const int nbNoeuds, const int distance[][]);
Merci beaucoup
Thomas
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 4 mai 2006 à 17:01
seule la première dimension peut être inconnue, les autres doivent êtres spécifiées...
void fonction(const int distance[][6]);
autre solution :
void fonction(const int* distance, int dim1, int dim2)
{
// case [x][y]
int val = *(distance+dim2*y+x);
}
=> ce code montre pourquoi le compilo avait besoin de dim2 pour générer du code mais pas dim1
appel :
int tab[5][6];
fonction(&tab[0][0], 5, 6);
Etant donné que nbNoeuds semble être une variable globale (ou un define), tu peux skipper le passage en param et utiliser la var globale :
bellmanFord(int origine, int nbNoeuds, floayt* distance, int borneRoutage)
*(distance+y*nbNoeuds+x)
bellmanFord( 0 , 5 , &distance[0][0], borneRoutage)