bonjour à tous,
je suis en train de développez un programme qui permettra de visualiser l'évolution autonome d'une fourmilière(intelligence par essaim).
voici mon problème :
j'utilise un tableau à 2 dimension
allocation OK
initialisation OK
mais lorsque je le passe en argument, il est impossible d'écrire dans la case [1][1] : erreur de segmentation
voici les extrait du code :
pas de soucis avec cette partie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 double **tab_heuristique ; tab_heuristique = malloc(nb_fourmi * sizeof(double *)); for (i = 1; i <= nb_fourmi; i++) { tab_heuristique[i] = malloc(taille_tableau * sizeof(double)); } for(i=1 ; i<=nb_fourmi ; i++) { for(j=1 ; j<=8 ; j++) { tab_heuristique[i][j] = 1 ; printf("%lf ", tab_heuristique[i][j]) ; } printf("\n"); }
et
après vérification num_fourmi = 1 et i =1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void calcul_proba_trajet(Destination tab_trajet[], int cote, Case monde[], Fourmi colonie[], int num_fourmi, double alpha, double beta, double n, double tab_proba[], double **tab_heuristique) { double phero_chemin = 0 ; double phero_voisinage = 0 ; double heuristique_total = 0 ; int i ; for(i=1 ; i<=8 ; i++) { phero_voisinage = phero_voisinage + calcul_pheromone_trajet(cote, monde, colonie, num_fourmi, i, tab_trajet) ; printf("%d, %d \n", num_fourmi, i) ; heuristique_total = heuristique_total + tab_heuristique[num_fourmi][i] ; //erreur de segmentation a cette ligne } }
est ce que quelqu'un aurait une petite idée, je suis sure que ce doit etre une erreur tellement grosse que je ne la voie pas.
Partager