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 :

utilisation de tableaux : code correct ?


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 3
    Points
    3
    Par défaut utilisation de tableaux : code correct ?
    Bonjour, Je souhaite crééer un tableau deux dimensions de 32 x 2048 doubles. Comme je débute un peu et que je passe de l'utilisation de <vectors> aux tableaux, pourriez vous m'aider en regardant rapidement s'il y a des fautes dans mon code ? Apparemment tout fonctionne, mais je souhaiterais en être sûr, notemment pour la destruction des tableaux 2D.

    Déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double ** Tableau;
     
    TailleBuff = 2048;

    Initialisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Tableau = new double *[32];
     
    for (int i=0; i<32; i++)
    {
        Tableau[i] = new double [TailleBuff];
    }
    Redimensionnement à une taille de 32x4096:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TailleBuff = 4096;
     
    for (int i=0; i<32; i++) 
    {
        Tableau[i] = new double [Taillebuff];
    }
    Destruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i=0; i<32; i++)
    {
        delete [TailleBuff] Tableau[i];
    }
     
    delete [32] Tableau;

  2. #2
    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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tout est dans la FAQ.

    Mais pourquoi ne pas utiliser des vectors ?

  3. #3
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    Peut-être parce qu'il débute et qu'il apprend il me semble ? :

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    nan, j'ai des problèmes de performance inconnus (devrais-je dire d'une autre planète) avec les <vectors>

    ...

    ah oui effectivement tout est dans la faq


  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    j'ai tout de même une question.

    Dans la FAQ, pour le redimensionnement de tableaux, il est indiqué de créer un nouveau tableau d'y copier l'ancien.

    Est-ce que l'on peut faire directement un "new" sur un tableau existant si l'on ne souhaite pas conserver les données de l'ancien tableau ?

    ex :

    Tableau = new double [32];
    Tableau = new double [64]; // redimensionnement


    est-ce correct ou dois-je détruire l'ancien tableau auparavant?

  6. #6
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par kuzloka
    Tableau = new double [32];
    Tableau = new double [64]; // redimensionnement


    est-ce correct ou dois-je détruire l'ancien tableau auparavant?
    Si tu ne veux pas de fuite de mémoire, il faut détruire.

    Si tu es sensibles au performance, et que réellement la classe vector ne te conviens pas -- ce dont je ne suis pas encore convaincu --, envisage aussi d'allouer un seul tableau et de l'indexer comme cela te convient (genre t[i*nombre_lignes + j]).

    De toute façon, fait une classe qui encapsule ta manière de manipuler les tableaux bidimentionnel.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/06/2006, 13h33
  2. [Tableaux] Code PHP dans un echo
    Par flOZ dans le forum Langage
    Réponses: 7
    Dernier message: 24/05/2006, 09h40
  3. utilisation d'un code VB en C++
    Par mrous dans le forum C++
    Réponses: 1
    Dernier message: 17/05/2006, 11h07
  4. Réponses: 4
    Dernier message: 10/05/2006, 10h36
  5. Réponses: 7
    Dernier message: 13/01/2005, 10h30

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