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 :

[Débutant]Structure Tableau, initialisation


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Par défaut [Débutant]Structure Tableau, initialisation
    Bonjour à tous.
    J'ai crée un petit programme de gestion de stock. Dans mon code j'ai une liste de produit. Produit est une structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    struct produit
    {
           char code[10];
           char libelle[50];
           double quantite ;
    } ;
    Liste est aussi une structure contenant un en entier et un tableau de produit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct liste
    {
           produit t[nb_max];
           int nb;
    };
    Tout le monde suit pour l'intant
    Ensuite je vais manipuler cette liste (ajout, suppression de produit, affichage de la liste,..)
    Pour cela, je veux en debut de programme initialiser la liste à vide, cad nb=0, et sans produit, donc le tableau vide.
    J'ai mis cette fonction que j'apelle en debut de programme dans mon main.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void init(liste l)
    {
         l.nb=0;
    }
    Voila dans le main je fais donc juste un init ( l ) ; (j'ai declarer l juste avant).

    Mon probleme c'est que lorque je vais afficher la liste des le debut du programme, celle-ci n'est pas vide. Elle est meme rempli, avec des caractère spéciaux, l'affichage (qui affiche tous les produits) fait meme planter le programme. Je ne comprend. Je pense que ca viens de l'intitialisation de la liste.
    Voilà, j'èspère avoir été le plus clair possible. Merci de me dire ce qui cloche dans mon programme.

  2. #2
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Par défaut
    Quand tu créé un tableau statique, ton compilateur ne fais que reserver de l'emplacement mémoire pour ton tableau, cette emplacement mémoire n'est pas mis à zero et peu tres bien contenir des valeurs.

    Toujours initialiser les variables avant de les utiliser.

    D'ailleurs vu que tu utilises le C++, je pense que tu devrais gerer ton projet avec des objets plutot que des structures, où la c'est dans le constructeur que tu poura initialiser tes tableau.

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Par défaut
    Ok, merci, c'est ce un peu que je pensais, mais comment l'initialiser a vide le tableau ?

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Pourquoi ne pas utiliser std::vector<produit> qui fait exactement ce dont tu as besoin tout en étant éprouvé et fiable ?

  5. #5
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Par défaut
    Parceque que je ne connaissais pas, lol. Je vais essayer. Merci

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    D'ialleurs, ton init prend en argument une liste l par valeur, donc la vraie liste l ne sera jamais modifiée, et donc jamais initialisée

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Sinon pour répondre à ta question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void init(liste l)
    {
         l.nb=0;
    }
    Va travailler sur une copie de ta liste.

    Pour travailler sur l'original il faut la passer par référence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void init(liste& l)
    {
         l.nb=0;
    }
    EDIT : oups grillé

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    ben non, tu donnes la solution, pas moi

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/05/2011, 13h38
  2. Fichier + structure + tableau
    Par Deejoh dans le forum C
    Réponses: 4
    Dernier message: 03/12/2005, 16h45
  3. [Débutant] [Conseil] Tableau ou vector
    Par nana1 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 04/11/2005, 09h56
  4. TAD matrice (structure + tableau dynamique)
    Par supermanu dans le forum C
    Réponses: 10
    Dernier message: 13/11/2004, 20h04
  5. [Débutant] Tri tableau String
    Par Sigwald dans le forum Collection et Stream
    Réponses: 22
    Dernier message: 14/05/2004, 08h55

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