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

XML Discussion :

[C] [libxml] problème de libération de la mémoire


Sujet :

XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 47
    Par défaut [C] [libxml] problème de libération de la mémoire
    j'utilise la librairie xml en c pour parser un fichier xml, mais je constate que l'espace memoire utilisée par mon programme augmente à chaque parsing de fichier xml, sachant que j'utilise xmlFreeDoc pour libirer la memoire
    est ce que vous avez une solution pour libirez la memoire utiliser par le programme?????

  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
    Il faut que tu postes le code qui pose probléme.

  3. #3
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Oui, tu as du utiliser d'autres fonctions qui allouent des trucs et dont le resultat devrait être liberé

  4. #4
    Membre averti
    Inscrit en
    Août 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 47
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    int xml_init(xml_demand *pDXml)
    {
      int              ret=0;
     
     
     
      creat_tmp_file_demand(&pDXml->xmlmsg);
     
      pDXml->xmlmsg.doc = xmlParseFile(pDXml->xmlmsg.tmpfile);
      if (pDXml->xmlmsg.doc == NULL) {
     
        ret = -1;
      }
     
      pDXml->xmlmsg.rootnode = xmlDocGetRootElement(pDXml->xmlmsg.doc);
      if (pDXml->xmlmsg.rootnode == NULL) {
     
        ret = -2;
      }
      else {
     
     
        if(!xmlStrcmp(pDXml->xmlmsg.rootnode->xmlChildrenNode->name, "text"))
          pDXml->xmlmsg.msgnode = pDXml->xmlmsg.rootnode->xmlChildrenNode->next;
        else
          pDXml->xmlmsg.msgnode = pDXml->xmlmsg.rootnode->xmlChildrenNode;
     
        while(pDXml->xmlmsg.msgnode->type == XML_COMMENT_NODE){
          if(!xmlStrcmp(pDXml->xmlmsg.msgnode->next->name, "text"))
    	pDXml->xmlmsg.msgnode = pDXml->xmlmsg.msgnode->next->next;
          else
    	pDXml->xmlmsg.msgnode = pDXml->xmlmsg.msgnode->next;
        }
     
        if (pDXml->xmlmsg.msgnode == NULL) {
     
          ret = -2;
        }
     
      }	
     
      return(ret);
    }
     
     
    int xml_free(xml_demand *pDXml)
    {
      int              ret=0;
     
     
     
      xmlFreeDoc(pDXml->xmlmsg.doc);  
      xmlCleanupParser();
     
     
     
     
     
      return(ret);
    }
    voila le code.
    init c'est pour parser le fichier, et free pour liberer la memoire utiliser par le parseur

Discussions similaires

  1. Problème de libération de la mémoire virtuelle
    Par Martial72 dans le forum C++
    Réponses: 15
    Dernier message: 11/02/2013, 12h34
  2. Problème de libération de la mémoire dans une fonction
    Par ArnaudFu1 dans le forum Débuter
    Réponses: 2
    Dernier message: 23/02/2012, 16h21
  3. FIREBIRD + APPLI EN C : Problèmes de libération mémoire
    Par lio33 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 16/09/2005, 09h07
  4. [Debutant(e)]problème de libération de mémoire
    Par skywalker3 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 10/02/2005, 17h38

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