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 :

Variables allouées dynamiquement


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 28
    Par défaut Variables allouées dynamiquement
    Bonjour,

    Que ce passe-t-il si je crée un objet dynamiquement (avec un new()), je ne fais pas de delete() et je ferme l'application?
    Est ce que cet espace est automatiquement libère lorsque le processus de l'application est termine ou reste réservé jusqu'au redémarrage de la machine?

    Merci.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par baccarios Voir le message
    Bonjour,

    Que ce passe-t-il si je crée un objet dynamiquement (avec un new()), je ne fais pas de delete() et je ferme l'application?
    Est ce que cet espace est automatiquement libère lorsque le processus de l'application est termine ou reste réservé jusqu'au redémarrage de la machine?

    Merci.
    sur windows et linux, oui : l'os libère toutes les ressources associées à ton process.

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 28
    Par défaut
    Merci pour l'information

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Delete fais 2 choses : détruire l'objet (via le destructeur si c'est une objet d'une classe, sinon rien) et désallouer la mémoire allouée avec new.

    Si tu ne fais pas de delete, il y a de bonne chance pour que l'os s'occupe de l'étape de désallocation, mais pas de celle de destruction, ce qui peut-etre génant (*).

    (*) Imagines par exemple que le destructeur de ton objet écrit dans un fichier de log pour dire ce qu'il a fait, lorsqu'il est détruit. Si l'étape de destruction est sauté, alors rien ne sera écrit.

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 105
    Billets dans le blog
    146
    Par défaut
    Bonjour,

    Certes, sur nos systèmes d'exploitation très puissant la mémoire sera tout de même libéré à la destruction du programme mais ce n'est absolument pas une raison pour prendre l'habitude de ne pas libéré la mémoire correctement.

    De plus, il arrive que nous ne travaillions pas toujours sur la machine parfaite ... notamment les appareils portables / robots et autres machines que l'on appelle des systèmes embarqués ont des systèmes d'exploitation qui ont moins le temps de s'occuper de la mémoire d'un tel programme et donc que la fuite sera apparente tant que l'appareil est allumé.

    Donc, il est sain de prendre pour habitude de faire un delete pour chaque new, et de vérifié le programme avec un memory checker.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Membre averti
    Inscrit en
    Août 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 28
    Par défaut
    Merci à tous pour ces informations

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/12/2007, 19h30
  2. Réponses: 4
    Dernier message: 08/05/2007, 20h10
  3. variable javascript dynamique
    Par meteteou dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/01/2007, 09h33
  4. Variables/objets dynamiques, quelques questions
    Par Crisanar dans le forum C++
    Réponses: 7
    Dernier message: 16/10/2005, 13h23
  5. variable à nom dynamique en javascript
    Par noa dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/01/2005, 01h12

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