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 :

Fuites de mémoire


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Fuites de mémoire
    Bonjour a tous, voila, je me demandais ce qui se passait lorsque l'on se plante au niveau de la mémoire et qu'il y a une fuite, concrétement. Est ce que maintenant c'est géré par l'OS (j'ai Ubuntu), ou par le compilateur (j'ai GCC) ?
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Personne d'autre (ni l'OS, ni GCC) que le programme lui-même ne peut déterminer qu'une zone particulière est à désallouer lorsque celui-ci est en fonctionnement.

    En revanche lorsque le programme s'arrête, les OS modernes recyclent l'ensemble de l'espace mémoire qui a été consommé par le programme.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Nudger Voir le message
    Bonjour,

    Personne d'autre (ni l'OS, ni GCC) que le programme lui-même ne peut déterminer qu'une zone particulière est à désallouer lorsque celui-ci est en fonctionnement.

    En revanche lorsque le programme s'arrête, les OS modernes recyclent l'ensemble de l'espace mémoire qui a été consommé par le programme.
    Merci c'était le genre de réponse que j'attendais, en fait je voulais savoir cela car il y a pas longtemps j'avais une fuite dans un de mes programmes et j'avais peur d'avoir perdu cette mémoire a jammais (lol sa fait peur dit comme ça).

  4. #4
    Malikemal
    Invité(e)
    Par défaut
    Dans tous les cas, à chaque redémarrage de l'ordinateur la mémoire vive est totalement vide donc suffit de le redémarrer et voila ! Oublier la fuite !

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 875
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par romfox17 Voir le message
    et j'avais peur d'avoir perdu cette mémoire a jammais (lol sa fait peur dit comme ça).
    Oui c'est exact. Chaque octet de mémoire alloué brûle une petite zone de la ram et chaque octet libéré répare la zone brûlée.
    Si tu alloues sans libérer ben tu crames ta ram. Quand elle est toute cramée, il n'y a plus qu'à aller acheter de nouvelles barrettes...

    PS: arf, la réaction ne s'est pas faite attendre. Déjà "-1" à mon compteur
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Oui c'est exact. Chaque octet de mémoire alloué brûle une petite zone de la ram et chaque octet libéré répare la zone brûlée.
    Si tu alloues sans libérer ben tu crames ta ram. Quand elle est toute cramée, il n'y a plus qu'à aller acheter de nouvelles barrettes...

    PS: arf, la réaction ne s'est pas faite attendre. Déjà "-1" à mon compteur
    ... Sujet résolu :p (Je fais dans le soft pour te répondre). Merci

  7. #7
    Membre expérimenté Avatar de ZnhaarX
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Par défaut
    Salut,

    Bah deux choix possible (me semble t-il):
    • Ton OS attend la saturation de la mémoire pour ensuite kill le process qui en est à l'origine et libérer l'espace
    • Au bout d'un certain temps ton process plante (à la "L'application ne répond plus" sous windows) et il se fait kill


    Sinon je ne comprend pas vraiment ta question:
    Est ce que maintenant c'est géré par l'OS (j'ai Ubuntu), ou par le compilateur (j'ai GCC) ?
    C'est un peu ambigu. Ton compilateur va te permettre de compiler ton code où est située ta fuite (exemple simple: allocation mémoire dans une boucle sans jamais la libérer) et ton OS va 'exécuter' ton process qui utilisera la mémoire nécessaire.

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

Discussions similaires

  1. fuite de mémoire ?
    Par salseropom dans le forum C
    Réponses: 2
    Dernier message: 12/01/2006, 16h19
  2. Réponses: 1
    Dernier message: 02/12/2005, 14h18
  3. fuite de mémoire
    Par mamag dans le forum MFC
    Réponses: 17
    Dernier message: 19/08/2005, 10h42
  4. Fuite de mémoire en utilisant le template list
    Par schtroumpf_farceur dans le forum Langage
    Réponses: 9
    Dernier message: 18/07/2005, 20h44
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

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