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 :

mauvaise désallocation tableau


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Par défaut mauvaise désallocation tableau
    Bonjour

    Pouvez vous m'expliquer pourquoi m'a desallocation ne marche pas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
           TPageControl* pClasseur;
            TTabSheet *pTabSheet[3];
            TStringGrid *pStringGrid[3];
    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
     
    //---------------------------------------------------------------------------
    void __fastcall TForm1::fabClick(TObject *Sender)
    {
      pClasseur = new TPageControl(Form1->Handle);
      for (int i=0; i<4; i++)
      {
            pTabSheet[i] = new TTabSheet(pClasseur->Handle);
            pTabSheet[i]->PageControl = pClasseur;
            pTabSheet[i]->Name = "blabla" + (AnsiString)i;
     
            pStringGrid[i] = new TStringGrid(pClasseur->Handle);
            pStringGrid[i]->RowCount = 10;
            pStringGrid[i]->ColCount = 10;
            pStringGrid[i]->Parent = pTabSheet[i];
            pStringGrid[i]->Align = alClient;
            pStringGrid[i]->Cells[1][1] = i;
      }
      pClasseur->TabWidth = ((Form1->Width)/(pClasseur->PageCount)) -4;
      pClasseur->Parent = Form1;
      pClasseur->TabPosition = tpBottom;
      pClasseur->Align = alClient;
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Fermerlanomenclature1Click(TObject *Sender)
    {
    delete[] pStringGrid;
    }
    merci

  2. #2
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (int i=0; i<4; i++)
            if ( pTabSheet[i] )
                      delete  pTabSheet[i];
    Employer delete[] que lorsque new type[number].

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Il ne sert à rien de tester le pointeur avant d'appeler delete, cf. http://cpp.developpez.com/faq/cpp/?p...RS_delete_NULL

    MAT.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 962
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 962
    Par défaut
    Hui,

    Quand tu as un tableau de pointeurs qui eux-mêmes pointent sur des données contenant des pointeurs etc., il faut faire le ménage complet avant de libérer la mémoire de ton tableau de pointeurs, ce que tu ne fais pas en écrivant seulement

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Par défaut
    OK merci à vous tous !



    (en plus je me souviens avoir lu ça quelque part dans l'un des tuto du site ! Honte à moi!)

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

Discussions similaires

  1. Mauvaise affichage Tableau SSRS
    Par Boubou2020 dans le forum SSRS
    Réponses: 4
    Dernier message: 16/07/2015, 11h47
  2. Réponses: 9
    Dernier message: 01/04/2013, 16h12
  3. Petit problème de désallocation de tableau 2D
    Par bertry dans le forum Débuter
    Réponses: 4
    Dernier message: 29/04/2011, 13h46
  4. 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
  5. Mauvaise mise en page de tableau
    Par solorac dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 05/06/2008, 09h14

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