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 :

Fonction et tableau dynamique


Sujet :

C++

  1. #1
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut Fonction et tableau dynamique
    Bonjour à tous !

    Bon, j'ai une sale impression en posant cette question mais je me lance quand même après mon heure et demi de recherche sur le net sans la moindre piste à part : "ce n'est pas possible"

    J'explique mon problème qui est plutôt simple :

    J'ai une fonction (main()) qui doit implémenter une liste à l'écran. Les données sont contenu dans un fichier (c'est un exemple hein). Pour lire ce fichier, je créer une fonction (lectFich()) spécifique qui lira le fichier et mettra chaque ligne dans un tableau

    un bout de lectFich() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    i = recupNumLineFichier(fichier);
    for(int x = 0; x<i; x++)
    {
    tab[x] = fichier[x];
    }
    Donc le tableau contenant les données est déclaré dans la fonction main() mais initialisé dans lectFich() puisqu'il n'y a que dans cette fonction que le nombre de donnée (i) à insérer est connu...

    Donc ça pourrait donner :
    ok, ça marche, mais quand je quitte la fonction lectfich(), je perd mon tableau tab[] et dans la fonction main(), forcement, si je tente de récupérer tab[1] il me jette comme un malpropre...

    Une idée ? une info ? un coup de pied au derrière pour me dire que je fais n'importe quoi ?

    Pour ceux qui aime quand ça coupe : http://lcdd.stass.eu

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Utilise un std::vector<> : Cette classe encapsule un tableau dynamique et se charge de le redimensionner efficacement quand on y ajoute des éléments.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    yep j'avais déjà vu ça avec la STL, mais il n'y a pas un autre moyen sans STL ?
    Pour ceux qui aime quand ça coupe : http://lcdd.stass.eu

  4. #4
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Si mais quel intérêt? C'est une partie critique au niveau de l'algorithme? Ton tableau est immense?
    D'autant plus que tu est sur la bonne voie puisque tu utilises les string.
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Si tu essaies sans la STL, tu finiras par refaire ce que la STL fait. Ce qui peut être le but d'un exercice, mais n'a aucun intérêt dans un vrai programme.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    (hs : Médinoc, ça faisait un bail tiens )
    bon bref, je vais donc tenter la STL, donc si je comprend bien :

    Je déclare mon vector dans mon main, je passe le pointeur de ce vector à lectFich dans lequel j'y vais à coup de push_back(x) ?
    Pour ceux qui aime quand ça coupe : http://lcdd.stass.eu

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    En passant le vecteur par référence, oui.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    Merci
    Pour ceux qui aime quand ça coupe : http://lcdd.stass.eu

  9. #9
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    Juste un petit truc, j'utilise QT pour ce soft en compilant avec mingw et avec la STL j'ai :
    D:/RestorPlus/../stl/char_traits.h:116: error: an explicit specialization must be preceded by 'template <>'
    Juste en faisant un include du <vector>
    Pour ceux qui aime quand ça coupe : http://lcdd.stass.eu

  10. #10
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    char_traits c'est pour string. C'est bizarre. Donne le code minimal pour voir.
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  11. #11
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    En fait il s'agit d'une classe : (bien entendu, le code n'est pas fonctionnel d'où la création de ce topic )
    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
    #include "opendatabase.h"
    #include "ui_opendatabase.h"
    #include "fctListOfServ.h"
    #include <vector>
     
    openDatabase::openDatabase(QWidget *parent) : QDialog(parent), m_ui(new Ui::openDatabase)
    {
        QString *listServ = NULL;
        int countServ;
     
        m_ui->setupUi(this);
     
        // test de recup de la list des servs sur le port standard via API Lotus
        test(listServ, &countServ);
     
        for(int i=0; i<countServ-1; i++)
        {
    	//qDebug() << listServ[i];
    	m_ui->comboBox->addItem(listServ[i]);
        }
     
        m_ui->comboBox->setCurrentIndex(-1);
    }
    Pour ceux qui aime quand ça coupe : http://lcdd.stass.eu

  12. #12
    Membre du Club Avatar de Verbalinsurection
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 127
    Points : 45
    Points
    45
    Par défaut
    Bizarement, c'est en enlevant le INCLUDEPATH de mon .pro relatif à la STL que tous les messages d'erreur (600 environ) disparaissent...
    Problème de définition entre QT4 et la STL ? ou entre L'API Lotus et la STL ?
    Pour ceux qui aime quand ça coupe : http://lcdd.stass.eu

Discussions similaires

  1. Fonction lire tableau croisé dynamique
    Par u88752 dans le forum Excel
    Réponses: 2
    Dernier message: 24/06/2015, 15h41
  2. Réponses: 2
    Dernier message: 14/02/2011, 15h56
  3. désallocation mémoire - fonction - structure - tableau dynamique
    Par Flaherty Mc Coillean dans le forum Débuter
    Réponses: 2
    Dernier message: 25/11/2009, 17h42
  4. Réponses: 6
    Dernier message: 03/02/2006, 19h45
  5. tableau dynamique en parametre d'une fonction
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 27/04/2004, 16h35

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