IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

erreur de segmentation toute bête (je pense)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Par défaut erreur de segmentation toute bête (je pense)
    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 :
    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"); 
    	}
    pas de soucis avec cette partie

    et

    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
    	}
    }
    après vérification num_fourmi = 1 et i =1

    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.

  2. #2
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par fignon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    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));
    	}
    Les indices commencent à zéro.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Par défaut
    certe, mais pour des souci de clareté dans mon raisonnement je fait débuter les indices à 1, et même en les faisant débuter à 0 , il se produit la même erreur au même endroit.

  4. #4
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par fignon
    certe, mais pour des souci de clareté dans mon raisonnement je fait débuter les indices à 1, et même en les faisant débuter à 0 , il se produit la même erreur au même endroit.
    Peut-être, mais en tout cas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab_heuristique[i] =...
    avec i=nb_fourmi, écrit n'importe où. Il ne faut donc pas le faire. La boucle correcte est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (i = 0; i < nb_fourmi; i++)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Par défaut
    en fait quand nb_fourmi>1 il n'y a pas de souci mais pour debugger mon programme j'ai besoin de nb_fourmi=1 et c'est la que ça cloche ;

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    ben au minimum fait des tab[i-1] ou [j-1]...

Discussions similaires

  1. Erreur sur cout : surement tout bête
    Par akorx dans le forum Débuter
    Réponses: 2
    Dernier message: 02/08/2011, 16h02
  2. Réponses: 21
    Dernier message: 08/01/2010, 17h15
  3. Erreur toute bête.
    Par Docteur_Hareng dans le forum Requêtes
    Réponses: 9
    Dernier message: 15/07/2009, 00h19
  4. [97] Erreur de syntaxe toute bète je pense
    Par totojordi dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 27/05/2008, 13h01
  5. Erreur suite à une requête toute bête :'(
    Par Kisa-chan dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo