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 :

les conséquences de malloc


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 171
    Par défaut les conséquences de malloc
    Bonjour,
    voilà je programme en C et je voudrais savoir si dans un programme C
    on utilise malloc mais sans faire de free dans le même programme (je veux dire sans liberer de la mémoire) est-ce que celà a des conséquence ?
    les quelles ?
    merci.

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Si tu utilises malloc sans faire de free alors tu peux te retrouver saturé à un instant. Remarque un vrai programmeur ne fait jamais de malloc sans faire de free derrière.

    Une bonne pratique est que dés que tu poses le mot malloc tu mets tout de suite derrière le free pour ne pas oublier.

    C'est donc une erreur de programmation que de ne pas libérer la mémoire soit -2 pour chaque free n'ont réalisé

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Normalement et je dit bien normalement, le système sous-jacent de ton OS devrais s'occuper de la libération des ressources mais j'en suis pas sûr qu'ils le font tous

    Vu que je ne fait confiance qu'à moi même, la règle d'or est donc:

    1 *alloc = 1 free
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 171
    Par défaut
    La mémoire utilisée par malloc est la mémoire vive ou mémoire du disque dur ?

  5. #5
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par momeftah
    La mémoire utilisée par malloc est la mémoire vive ou mémoire du disque dur ?
    En mémoire vive tu t'imagines le temps d'accès aux disques

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Mais une allocation de mémoire avec les fonctions *alloc ca se fait dans le tas donc dans la RAM et jamais sur disque
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #7
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    En mémoire vive tu t'imagines le temps d'accès aux disques
    En fait non, tu demandes au système à ce qu'il t'alloue de la mémoire, tu ne sais pas d'où elle provient, de plus, si tu n'as pas assez de RAM, le système va chercher la mémoire sur le disque.

  8. #8
    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 momeftah
    La mémoire utilisée par malloc est la mémoire vive ou mémoire du disque dur ?
    C'est de la mémoire. Le système se débrouille pour aller la chercher où il faut. On a pas à le savoir.

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

Discussions similaires

  1. [PC portable] 5 partitions - les conséquences ?
    Par Invité dans le forum Ordinateurs
    Réponses: 10
    Dernier message: 29/09/2012, 17h32
  2. Une éruption solaire: les conséquences?
    Par x2011 dans le forum Actualités
    Réponses: 4
    Dernier message: 25/01/2012, 09h40
  3. Réponses: 3
    Dernier message: 22/11/2011, 08h32
  4. Réponses: 10
    Dernier message: 25/05/2010, 07h10
  5. Réponses: 4
    Dernier message: 13/09/2006, 14h17

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