을 append_node이상한 결과 내가이 클래스가
그러나XmlWrapper wrapper;
wrapper.addNode("message");
cout << wrapper.getXmlString() << endl;
내 결과가 이상한 물건의 목록입니다! 내가 addNode
함수에서 wrapper.getXmlString()
인 경우 결과는 okie가됩니다! 내 문제가 뭐니?
편집 :
xml_document<> doc;
xml_node<> *message_node = doc.allocate_node(node_element, "message");
doc.append_node(message_node);
string buffer;
print(back_inserter(buffer),doc,0);
cout << buffer << endl;
이 일이 일어날 이유 : 나는 다음과 같이 MAIN.CPP에 직접 사용 경우, 모든 일이 잘 갈입니까?
당신은'new'를 사용하여 메모리를 할당하지 않습니다. 왜 당신은'delete root; '문장을 가지고 있는가? 또한, 노드 이름을 고수하기 위해서는'allocate_string'을 사용해야합니다. 설명서를 읽으십시오. – dirkgently
메모리 누수가 걱정됩니다! 이게 옳은 거니? –
가변 배열'_name'을 사용하는 원래 코드는 매달린 포인터에 문제를 일으킬 것입니다 (함수 밖으로 나갈 때'_name'은 파괴 될 것이고 XML 문서는 파괴 된 메모리 영역을 가리킬 것입니다). – dirkgently