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++Builder Discussion :

Comment vérifier si une mémoire déjà libérée


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut Comment vérifier si une mémoire déjà libérée
    Bonjour à tous,
    j'ai utilisé « new » et « delete » pour allouer dynamiquement un tableau en double. Comme je change souvent la dimension de ce tableau, avant utiliser « new », j’aimerais savoir si ce tableau déjà libéré. Sinon, il y a de fuite de mémoire, par exemple, allouer deux fois la même tableau !
    Merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !
    Après le delete : pointeur = NULL;

    Donc avant new tester si NULL.

    A plus !

  3. #3
    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
    Citation Envoyé par henderson
    Après le delete : pointeur = NULL;

    Donc avant new tester si NULL.
    Plus exactement, c'est au programmeur de mettre le pointeur à NULL après libération.
    Certains compilos en mode debug assignent des valeurs bizarres (genre 0xFEFEFEFE) pour mieux détecter ces comportements, mais c'est juste pour du debug.

    A part ça, pourquoi ne pas utiliser un conteneur standard genre std::vector (voir FAQ C++) pour ton tableau dynamique ? Ou peut-être un conteneur de la VCL s'ils existent ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Merci,
    j'ai vérifié si le pointeur est NULL avant utiliser "new". Mais, il y a encore le problème: le pointer n'est pas NULL après "delete []";

  5. #5
    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
    Citation Envoyé par Xavier
    Merci,
    j'ai vérifié si le pointeur est NULL avant utiliser "new". Mais, il y a encore le problème: le pointer n'est pas NULL après "delete []";
    On se demande parfois à quoi ça sert de répondre...
    Citation Envoyé par Loulou24
    Plus exactement, c'est au programmeur de mettre le pointeur à NULL après libération

  6. #6
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Excusez-moi, je ne savais pas comment mettre un pointeur NULL.
    J'ai essayé, et tout simple: pointer = NULL.
    Merci à tous.

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

Discussions similaires

  1. Comment vérifier qu'une valeur est NULL ?
    Par innova dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/11/2006, 14h53
  2. [VBA-E]Comment vérifier qu'une zone de texte existe?
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/04/2006, 14h19
  3. [Mail] comment vérifier entierement une url ?
    Par italiasky dans le forum Langage
    Réponses: 18
    Dernier message: 07/02/2006, 14h08
  4. Comment vérifier qu'une date est nulle
    Par stressy dans le forum Access
    Réponses: 7
    Dernier message: 09/12/2005, 15h41
  5. comment vérifier qu'une table esclave vérifie une condition?
    Par loikiloik dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/04/2004, 16h48

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