begin process at 2008 08 20 14:14:53
1 228 858 membres
224 nouveaux aujourd'hui
14 257 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pb avec graphe en C++ [ Divers / Débutant(e) ] (gargourifahmi)

Pb avec graphe en C++ le 09/08/2007 12:44:17

gargourifahmi
Salut à tous,
Je suis en train d'implémenter un graphe basé sur les listes d'adjacence.
En première étape, j'ai essayé d'initialiser le tableau de pointeurs sur les sommets, mais j'ai l'impression que ça ne marche pas.[code]#include <string>
[code=cpp]#include <string>
#include <iostream>
using namespace std;

class noeud
{
    public:
    int n ; //n° de l'état destinataire
     char a ; //caractère de la transition conduisant à cet état.
    noeud *suiv1 ; //on utilise une liste chainée.
    noeud *suiv2 ; //à double pointeurs
};
class automate
{
    private:
    int n; //nbre de noeud
    noeud *tab[];
    public:
    void init_tab(int m);
    void ajouter_noeud(noeud);
    
};

void automate::init_tab(int m)
{
    for (int i=0;i>m;i++)
    {
      tab[i]=new noeud();
      tab[i]->n=i;
      cout << " I's ok ";
      
    }
       
}
int main(void)
{
    int n;
    //Création de notre graphe
     automate *aut= new automate();
    cout << "Tapez le nombre de noeuds de l'automate : ";
    cin >> n;
    (*aut).init_tab(n);
    return 0;
}   
[/code]
En fait lors de l'exécution de ce bout de code je remarque que le message "I's ok" n'est pas affiché donc la méthode d'initialisation n'est pas atteinte.
Aidez moi SVP.

Re : Pb avec graphe en C++ le 09/08/2007 13:30:51

Pistol_Pete
Salut,

Pour ton problème, tu as juste fait une erreur d'inatention.
Dans ton for, met plutot:
for(int i=0; i < m;i++)
Le deuxième paramètre du for permet ou non de rester dans la boucle.
Tu restera dans le for tant que i<m, sinon, il n'entre même pas dans la boucle. 

Sinon une dernière petite chose, prend l'habitude de mettre un \n ou un endl à chaque fois que tu écris à l'écran. Ceci te permet de vider le buffer cache. Par conséquent la ligne est affiché immédiatement. Juste un petit exemple, si tu fais un seg fault juste après un cout sans endl, il y a 90 % de chance qu'il n'ai pas vidé le buffer cache. Tu ne verras donc rien à l'écran et tu penseras donc qu'il a craqué avant le cout.

A+

Re : Pb avec graphe en C++ le 10/08/2007 12:10:07

gargourifahmi
Maintenant j'ai avancé dans mon petit programme et j'ai rencontré une erreur de type:
Erreur de segmentation qu'est générée lors de l'exécution.
Est ce qq'un peut me l'expliquer.
Merci beaucoup.

Re : Pb avec graphe en C++ le 10/08/2007 14:07:22

HSylvio
Ben cette erreur en général je l'ai eu paske j'utilisais un pointeur vers le vide, (tu vas trop loin dans ston tableau, ou un noeud n'existe pas et tu veux y accéder...)



Classé sous : graphe, code, int, tab, noeud

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS