Tinyxml的内存析构

Tinyxml的值在使用时最好是new出来的,因为其在析构的时候会遍历整个树,将树中的节点析构掉。但是没有在树中的节点将不会被自动施放,正是这种半自动的释放带来了问题。
ReplaceChild()方法中,我们插入的值是否需要释放呢,通过查看内部的代码,它是clone一个然后加入树的,也就是说,原来的值如果是new出来就需要释放。

void set_node(TiXmlElement* element,const char* value)
{
 TiXmlText* tmp1 = new TiXmlText(value);
 TiXmlNode* node = element->FirstChild();
 if(node == NULL)
{
     element->LinkEndChild(tmp1);

else
 {
     element->ReplaceChild(node,*tmp1);
     delete tmp1;
 }
}

posted on 2008-03-31 09:58 小C 阅读(1452) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜