tomalille
Messages postés52Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 5 juin 2007
-
4 mai 2006 à 20:58
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
5 mai 2006 à 11:23
Bonjour,
j'ai un segmentation fault sur l'execution d'un programme.
Le probleme vient d'une fonction ayant un tableau en parametre. Lorsque
je veux acceder au tableau j'ai segmentation fault alors que le
programme compile
voici le programme:
bool bellmanFord(int origine, int nbNoeuds, float **distance, int borneRoutage)
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 5 mai 2006 à 08:31
Dans ton programme tu dois avoir un autre problème:
float d[nbNoeuds];
int pi[nbNoeuds];
float B[nbNoeuds][borneRoutage];
nbNoeuds et bornesRoutage ne sont pas des #define, dont tu peut pas declarer tes tabeaux comme ca normalement. Il faut que tu les alloue dynamiquement.
int tab[6]; // tu a le droit
int a =6;
int tab[a]; // normalement tu as pas le droit
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 5 mai 2006 à 10:57
oui je pense aussi qu'au moment de la compilation, la variable nbNoeuds n'étant pas définie, puisque c'est une variable d'exécution, le complilateur ne connait pas la taille des tableaux. Il doit faire une supposition (du type nbNoeuds == 0) et tes tableaux ne sont pas alloués correctement. Il faudrait peut être passer par une allocation dynamique (malloc ou autre)