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 :

problème de suppression de pointeur!


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut problème de suppression de pointeur!
    bonjour!
    Voila mon problème.j'ai créer un vecteur pointant sur une class contenant des pointeurs pour pouvoir créér un nombre illimiter de tableau dynamique car je ne connais pas à l'avance combien j'en ai besoin.le problème est que mon programme plante à la fin. Je pense que cela vient du faite que je ne delete pas les pointeurs.

    définition de ma class dans le fichier.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class BufferReceiver
    {
     public:
       char *prChar;  
       double *prDouble;          
       unsigned long *prU32;
     
    };
    dans le fichier .cpp

    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
    std::vector<BufferReceiver> vBufferReceiver;
     
    //NbrModel,NbrElementDouble,NbrElementChar etant des variables calculer un peu avant. 
    vBufferReceiver.resize(NbrModel);
    vBufferReceiver[i].prDouble=new double[NbrElementDouble];
    vBufferReceiver[i].prChar=new char[NbrElementChar];
     
    //fonction API nécéssaire à mon prog. pas besoin de vous y attardé
    result = RFM2gRead( Handle, OFFSET1,vBufferReceiver[i].prChar ,rfmBytesChar);
     
    //suppréssion j'ai essayer
    delete[] prChar;//ne compile pas (erreur prChar non déclaré)
    delete[] prDouble;//  "        "                prDouble
     
     
    vBufferReceiver[i].delete []prChar; //bien sûr ne compile pas
    j'ai penser à une fonction dans ma class avec comme argument l'adresse du pointeur mais je n'y arrive pas.

    quelqu'un aurait'il une solution?merci.

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Quelle syntaxe tordue, il suffit de raisonner logiquement : tu veux désallouer le tableau pointé par vBufferReceiver[i].prDouble, il faut donc écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delete [] vBufferReceiver[i].prDouble;
    A part ça :

    - Pourquoi utiliser un vecteur pour ton tableau d'instances, et ensuite des pointeurs bruts pour leurs tableaux ? Tu étais bien parti

    - Avoir un constructeur et un destructeur peut aider. Mais si tu utilises des vecteurs tu n'en n'auras pas besoin (ou plutôt tout le sale boulot sera fait automatiquement)

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

Discussions similaires

  1. Problème de suppression de ligne dans ma base !
    Par gregman dans le forum ASP
    Réponses: 2
    Dernier message: 21/05/2005, 08h14
  2. Problème de suppression de fichier
    Par sorry60 dans le forum Assembleur
    Réponses: 7
    Dernier message: 23/04/2005, 18h33
  3. [JTable] problème après suppression d'une ligne
    Par fredo3500 dans le forum Composants
    Réponses: 7
    Dernier message: 17/03/2005, 10h01
  4. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27
  5. Réponses: 4
    Dernier message: 16/04/2004, 08h20

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