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 :

probleme fonctions c++ -- passage de paramètres


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Par défaut probleme fonctions c++ -- passage de paramètres
    bonjour à tous ,
    voila donc mon pb:
    je travaille sur deux tableau de pointeur sur une structure ;voici le type (table) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    typedef struct noeud
    {
     int num,poids;
     struct noeud *suiv;
    };
     
    typedef noeud *table;
     
    //déclaration du tableau : 
    table Pred[N];
    quand je modifie les deux tableaux dans le prog principale (main) ça marche impec, mais dés que je passe ces deux tableaux dans une fonction pour effectuer quelque opérations de modification , rien ne se passe,
    voici le prototype de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void Predecesseur(table Succ[],table Pred[])

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 2
    Par défaut
    void Predecesseur(noeud* Succ[],noeud* Pred[])
    Et comme ca ?

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    Il me semble que vous avez mal déclaré votre premier typedef.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct noeud
    {
        int num,poids;
        struct noeud *suiv;
    } noeud;
    (il manquait "noeud" avant le point virgule)

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par Whyzix Voir le message
    Il me semble que vous avez mal déclaré votre premier typedef.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct noeud
    {
        int num,poids;
        struct noeud *suiv;
    } noeud;
    (il manquait "noeud" avant le point virgule)
    Tout ça c'est du C et pas du C++ !! Pas besoin de typedef lorsqu'on défini une structure et pas besoin de réutiliser struct !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct noeud
    {
     int num,poids;
     noeud *suiv;
    };
    Pour faire une liste en C++, il existe std::list :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    struct noeud
    {
    int num;
    int poids;
    };
    typedef std::list<noeud> table;
    Pour les tableaux, il existe std::vector (tableau dynamique), ou std::array.


    Pour ton passage par paramètre, montre nous la fonction.

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Par défaut la fonction ...
    voici la fonction :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    void Predecesseur(table Succ[],table Pred[])
    {
    	 for(l=1;l<=NbrNoeuds;l++)
          for(m=1;m<=NbrNoeuds;m++)
           {
            p=Succ[m]; trouve=false;
            while (p!=NULL && !trouve)
             {
              if (p->num==l) trouve=true ;
              if (!trouve) p=p->suiv;
             }
            if (trouve)
             {
              if (Pred[l]==NULL)
             {
              nouv=new noeud;
              nouv->num=m;
              nouv->poids=p->poids;
              nouv->suiv=NULL;
              Pred[l]=nouv;
             }
            else
             {
              h=Pred[l];
              while (h->suiv!=NULL) h=h->suiv;
              nouv=new noeud;
              nouv->num=m;
              nouv->poids=p->poids;
              nouv->suiv=NULL;
              h->suiv=nouv;
             }
           }
        }
    }
    ce n'est pas la première fois que j'utilise cette méthode, et elle a déjà marché sans pb, mais là,je ne trouve pas ou est l'erreur...

  6. #6
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Comment ça peut marcher alors que ni p, h et nouv ne sont déclarés !?

    Edit : Ni l, ni m, ni NbrNoeuds. Quel bazar, comment cette fonction peut-elle avoir la moindre chance de compiler ?

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Par défaut
    Citation Envoyé par anissben Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            while (p!=NULL && !trouve)
             {
              if (p->num==l) trouve=true ;
              if (!trouve) p=p->suiv;
             }
            if (trouve)
             {
              ...
    bien compliqué tout ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            while (p!=NULL && p->num!=l)  p=p->suiv;
            if (p!=NULL)
             {
              ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel d'une fonction et passage de paramètres
    Par rolandl dans le forum jQuery
    Réponses: 2
    Dernier message: 30/09/2012, 17h44
  2. Réponses: 0
    Dernier message: 04/07/2010, 00h52
  3. Fonction et passage de paramètres
    Par methodman225 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/06/2009, 13h29
  4. ActionScript : fonction et passages de paramètres
    Par gcvoiron dans le forum Flash
    Réponses: 6
    Dernier message: 12/06/2007, 13h52
  5. probleme lors du passage de paramètre
    Par maxmj dans le forum ASP
    Réponses: 4
    Dernier message: 18/11/2003, 00h15

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