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 :

memoire fin de programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut memoire fin de programme
    Bonjour,

    Je crée un arbre avec des mallocs. Est ce que je dois liberer toutes les zones memoires que j'ai créées avant de quitter mon programme ? ou elles sont liberées automatiquement quand le programme se termine ?

  2. #2
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut
    Salut

    Sur les ordinateurs modernes, c'est fait automatiquement (Linux, Windows...).
    Mais je te conseille quand même de le faire pour éviter tout problème.

    Nas'

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: memoire fin de programme
    Citation Envoyé par semaj_james
    Je crée un arbre avec des mallocs. Est ce que je dois liberer toutes les zones memoires que j'ai créées avant de quitter mon programme ? ou elles sont liberées automatiquement quand le programme se termine ?
    Pour être propre, il faut tout libérer. La libération automatique est une QoI (Quality of Implementation). Elle n'est pas requise par le langage.

    Sans parler des programmes qui tournent 24h/24 7j/7 (embarqué, par exemple, serveurs etc.) et qui doivent impérativement gérer leur mémoire au mieux.

  4. #4
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut
    je vous remercie

  5. #5
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut
    bonjour,

    j'ai une autre question, j'ai une structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    typedef struct noeud
          {   
          mat_dyn *matrice;
          char arc;
          char signe;  //signe de l'arc
          int ligne;   //nombre de ligne de la matrice
          struct arbre *fils;
          struct arbre *frere;
          } *PNOEUD, NOEUD;
    je veux liberer la memoire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void lib_memoire(PNOEUD arbre)
    {
     
    if(arbre !=NULL)
       {
       lib_memoire(arbre->fils);
       lib_memoire(arbre->frere);
       free(arbre->matrice);
       free(arbre);
       }
    }
    est ce que je dois faire free(arbre->matrice) ou la matrice est liberée quend je fais le free(arbre) ?

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En théorie, elle n'est pas libérée: Si tu alloues la matrice et la structure séparément, elles sont libérées séparément.

    Si tu alloues le tout d'un bloc par contre (Mais je ne pense pas que ce soit le cas ici), tout sera libéré d'un bloc.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut
    je te remercie

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/01/2007, 13h09
  2. Memoire Fin Etude
    Par dieudo dans le forum Langage
    Réponses: 4
    Dernier message: 15/01/2007, 20h22
  3. memoire resevée à un programme java
    Par hamma2 dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2006, 08h43
  4. [LG] Problème avec la Fonction ReadLn en fin de programme
    Par killermano dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2005, 15h16
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

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