Bonjour ,

Voila, j’ai développé un programme utilisant libxml2 (j’utilise Windows, libxml2.dll etc.…) mais lorsque que je lance ce programme et que je regarde la mémoire utilisées, elle augmente mais ne baisse jamais donc mon programme « fuit », j’ai cherché et j’ai localisé la fuite mais le souci c’est que je ne vois pas comment régler se problème car il vient de l’utilisation de libxml.

Donc voici la partie du code qui permet de récupérer tout les nœuds enfant pour chaque nœud « Document » trouvés.
Déjà pouvez-vous me dire si, ma façon de procéder pour lister les nœuds enfants est correcte car j’ai trouvé que ça, pour lister pour chaque nœud parent, tous leurs nœuds enfants.
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
//voici la portion de mon code qui fuit
 
xpathRes = xmlXPathEvalExpression("/LOT/DOCUMENT", ctxt); // récupere tout les noeud documents
char ttt[90];
char tableauNom[10000][50];
// Manipulation du résultat
if (xpathRes->type == XPATH_NODESET) {      
   for (i = 0; i < xpathRes->nodesetval->nodeNr; i++) { 
       xmlNodePtr n = xpathRes->nodesetval->nodeTab[i]; // les noeuds sont dans la varible n   
       if (atoi( xmlGetProp(n, "NBImg")) != 0){
             for( j = 0 ; j<atoi( xmlGetProp(n, "NBImg")) ; j++){       
 
                    strcpy (ttt, ""  );
                    strcat(ttt, repertoireArrive  );
                    strcat(ttt, "/" );
                    strcat(ttt, fichier );
                    strcat(ttt, "/" );
                    strcat(ttt, xmlGetProp(n->children, "Nom") );
                    strcpy(tableauNom[j],ttt);
 
                    n->children = n->children->next;
 
              }
                strcpy(Nomfichier , LienRepertoireSortie );
                strcat(Nomfichier , "/"); 
                sprintf(nom,"%d",i);          
                strcat(Nomfichier , nom);      
                strcat(Nomfichier , ".tif"); 
     }
   }
 }
//libéraTTTTION  del memoire 
xmlXPathFreeContext(ctxt);
xmlXPathFreeObject(xpathRes);
xmlFreeDoc(doc);
SVP j'ai vraiment besoin d'aide sur ce coup car je suis perdu avec cette fuite mémoire