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 :

mettre la dimension d'un tableau a partir d'une fonction


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut mettre la dimension d'un tableau a partir d'une fonction
    salut, je vouderais mettre la dimension d'un tableau a partir d'une fonction mais..l'éxecution ne se termine pas quand je la lance

    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
    void creer(Personne** pers,int nbrelem){ 
    char* nom ; char* prenom ; unsigned int age; 
    *pers=new Personne[nbrelem]; 
       for(int i=0;i<nbrelem;i++){ 
        cout<<"donnez le nom , le prenom et l'age de "<<i+1<<"eme elements \n"; 
    fflush(stdin); 
        cin>>nom; 
    fflush(stdin); 
    cin>>prenom; 
    fflush(stdin); 
    cin>>age; 
    *((*pers)+i)=Personne(nom,prenom,age); // ici le probleme...pk? 
    }   
    } 
     
    //*dans le main 
    Personne *p; 
    creer(&p,3);

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    Salut,

    il n'y a pas l'air d'y avoir de probleme. Quand tu dis l'execution ne se termine pas, ca veut dire quoi ?

    Sinon au lieu de passer par un pointeur de pointeur, tu peux passer par une référence sur un pointeur (moins d'indirections) ou retourner l'adresse du tableau créé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void creer(Personne*& pers,int nbrelem)
    { 
        pers = new Personne[nbrelem]; 
        for(int i=0;i<nbrelem;i++)
        { 
           // ...
           pers[i] = Personne(nom,prenom,age); // ici le probleme...pk? 
        } 
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Personne* creer(int nbrelem)
    { 
        Personne* pers = new Personne[nbrelem]; 
        for(int i=0;i<nbrelem;i++)
        { 
           // ...
           pers[i] = Personne(nom,prenom,age); // ici le probleme...pk? 
        } 
     
        return pers;
    }
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    salut, et merci pour ta réponse ..le problème que je ne comprends pas moi aussi (c'est la raison pour laquelle je poste..) est que tout se fait bien...jusqu'a l'affectation (que j'ai decrit)...et aussi merci pour tes suggéstions ca ma aidé à contourner le problème n'empeche je suis un peu curieux de connaitre le problème

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Pour avoir un tableau en C++, le plus simple est d'utiliser vector. Tu n'auras alors pas à t'occuper de la gestion manuelle de la memoire.

    Le code pourrait alors ressembler à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <vector>
     
    std::vector<Personne> creer(int nbrelem)
    {
        std::vector<Personne> result;
        for(int i=0;i<nbrelem;i++)
        { 
           // ...
           result.push_back(Personne(nom,prenom,age));
        } 
        return result;
    }
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/10/2014, 21h42
  2. Réponses: 1
    Dernier message: 28/12/2007, 10h32
  3. [SQL] Tableau associatif à partir d'une requête
    Par hugo69 dans le forum WinDev
    Réponses: 1
    Dernier message: 24/03/2007, 19h22
  4. [VB.NET]Sortir un tableau a partir d'une fonction
    Par mustang-f27 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/11/2006, 11h21
  5. Tableau a partir d'une requete sql
    Par 10-nice dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/10/2004, 16h37

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