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 :

[TinyXML] Fuite de mémoire


Sujet :

XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Par défaut [TinyXML] Fuite de mémoire
    bonjour j'utilise tinyXml dans le cadre d'un projet et la taille mémoire ne cesse d'augmenter.
    J'ai réussi à isoler le problème et j'ai des doutes sur la librairie tinyXML.

    J'ai fait un petit programme de test :


    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
    #define _CRT_SECURE_NO_DEPRECATE
    #include "stdlib.h"
    #include <string.h>
    #include "ticpp.h"
    #include "windows.h"
    #include <iostream>
    using namespace std;
    using namespace ticpp;
     
    void run()
    {
    	Document myDocument;
    	Element roorElement;
    	roorElement.SetValue("Root");
    	char strName[16] = "";
    	char strAttribut[16] = "";
     
    	int i;
    	int j;
     
    	for( i=0; i<10; i++)
    	{
    		sprintf( strName, "Element%d", i);
    		Element element;
    		element.SetValue(strName);
     
    		for( j=0; j<5; j++)
    		{
    			sprintf( strAttribut, "Attribut%d", j);
    			element.SetAttribute( strAttribut, j);
    		}
    		roorElement.InsertEndChild( element);
    		element.Clear();
    	}
    	myDocument.InsertEndChild( roorElement);
    	roorElement.Clear();
    	myDocument.SaveFile( "testTiny.xml");
    	myDocument.Clear();
    }
    appelé depuis le main qui est une boucle infinie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void main()
    {
    	bool b = true;
    	while (b)
    	{
    		run();
    		Sleep( 1000);
    	}
    }

    Si quelqu'un a une idée ou a déjà rencontré ce problème, cela me serait très utile.

    merci d'avance

    PS : j'ai joint mon projet avec ce post
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Utilise une version plus récente de TinyXML et tu n'auras plus de souci de fuites mémoire.


    Toutefois, il te faudra remplacer ticpp.h par tinyxml.h.

    Il n'y a plus de namespace ticpp.

    Les classes Document et Element ont été renommées en TiXmlDocument et TiXmlElement.

    Il n'y a pas de constructeur par défault pour la classe TiXmlElement. Tu dois donc remplacer l'appel de setValue par un appel au constructeur TiXmlElement (const char *).

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