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 :

malloc() free() et la gestion memoire... question dure ;)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut malloc() free() et la gestion memoire... question dure ;)
    Un petit exemple pour commencer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // on alloue de la mémoire
    pt1 = malloc (10*sizeof(char));
    pt2 = malloc (sizeof(int));
     
    // on fais des tas de trucs
    ...
    ...
    ...
     
    // on libere la mémoire 
    free(pt1);  pt1 = NULL;  // pour que ça soit propre
    free(pt2);  pt2 = NULL;  // pour que ça soit propre

    Comment le systeme sait-il qu'il faut liberer 10 octets pendant l'appel de free(pt1) alors qu'il n'en libere que 4 pour free(pt2) ???

    (question annexe: si ya une table comment faire pour la consulter... )

    Merci de me répondre ça fait longtemps que je me pose la question...

  2. #2
    Membre émérite
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Par défaut
    Ca, c'est l'implantation de la libc qui le détermine ; et en particulier l'implantation de la fonction malloc.

    Et pour répondre à ta question, a priori, une table d'association est gérée en interne (afin de faire les bonnes correspondances).

    Tu peux t'amuser à recoder une fonction malloc et free, avec des printf pour tracer tout ça...

    Il me semble qu'Emmanuel fait ça avec un de ses modules (SYSALLOC, je crois..). Jette donc un oeil à son code
    (voire même directement dans les sources de la libc, mais avec tous les #define, c'est assez pénible à lire...

    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    Merci...

    j'irai voir.

  4. #4
    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
    Citation Envoyé par gene69
    Merci...

    j'irai voir.
    http://emmanuel-delahaye.developpez.com/clib.htm

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

Discussions similaires

  1. Malloc/Free : Style élégant?
    Par Gilles.L dans le forum C
    Réponses: 5
    Dernier message: 07/05/2006, 21h44
  2. Réponses: 16
    Dernier message: 20/04/2006, 14h11
  3. [Free Pascal] Limite de mémoire
    Par JoseF dans le forum Free Pascal
    Réponses: 6
    Dernier message: 21/02/2006, 12h43
  4. [NetBeans] Probleme de Processus IDE(Gestion mémoire)
    Par sniperseb dans le forum NetBeans
    Réponses: 3
    Dernier message: 01/02/2006, 19h22
  5. [JVM]Gestion mémoire : Bizarre
    Par elitost dans le forum Général Java
    Réponses: 2
    Dernier message: 28/09/2005, 20h34

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