Ajouter un commentaire

K-lo

Quote:
La librairie te renvoie un pointeur, MAIS pas forcément en créant une instance. Je dirais même probablement pas. Bref par cette ligne de code tu as une adresse et c'est tout. A priori tu ne dois pas faire de delete dessus, c'est la librairie qui va s'en charger quand tu vas faire un delete sur la racine par exemple. Si tu as déjà fait un delete avant sur un noeud, il y aura un pointeur invalide quelque part dans l'arborescence XML et ça va planter quand la librairie voudra effacer le tout.


C'est la confirmation que j'attendais :D
Juste pour être sur :p

Quote:
e ne sais pas exactement car tu ne montres pas de code

void recherche(TiXmlNode *ti, 	std::vector<std::string>& out)
{
	TiXmlNode  *tNode;

	if(ti != NULL){
		tNode = ti; 
	}else{
		tNode = this->docFich->RootElement();
	}
	tNode = tNode->FirstChild();
	if(!tNode){return;}
	
	while(tNode->ToElement()){
if(std::string(tNode->Value()) == std::string("baliseRecherchee"))){
			if(tNode->FirstChild()){
				out.push_back(std::string(tNode->FirstChild()->Value()));
			}
		}
		recherche(tNode, out);
		if(tNode != tNode->Parent()->LastChild()){
			tNode = tNode->NextSibling();
		}else{
			break;
		}
	}

	return;
}

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 K  K  H  H   SSS   DDD    GGG  
K K H H S D D G
KK HHHH SSS D D G GG
K K H H S D D G G
K K H H SSSS DDD GGG