首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rapidxml写入内存错误

Rapidxml写入内存错误
EN

Stack Overflow用户
提问于 2015-04-21 00:58:30
回答 1查看 120关注 0票数 0

我不明白为什么BBBString中的every (i,j)具有不同的内容,而节点"BBB“总是具有相同的值(对应于最后一对(i,j) )。其他节点具有完全相同的内容!

代码语言:javascript
复制
for (unsigned short int i = 0; i < input1.size(); i++)
    {
        for (unsigned short int j = 0; j < input1[i].size(); j++)
        {
            count = 0;
            max = input1[i][j].size();
            iter = input1[i][j].begin();
            while (count < max)
            {
                rapidxml::xml_node<> * new_node = doc.allocate_node(rapidxml::node_element, "Element");
                new_node->append_node(doc.allocate_node(rapidxml::node_element, "AAA", (*(*iter)).getName().c_str()));

                std::string BBBString = boost::lexical_cast<std::string>(input4[i]);
                std::cout << "BBBString = " << BBBString << std::endl;
                new_node->append_node(doc.allocate_node(rapidxml::node_element, "BBB", BBBString.c_str()));
                new_node->append_node(doc.allocate_node(rapidxml::node_element, "CCC", input2[i].getName().c_str()));
                new_node->append_node(doc.allocate_node(rapidxml::node_element, "DDD", input3[j].getName().c_str()));

                other_node->append_node(new_node);
                iter++;
                count++;
            }
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2015-04-23 22:54:47

经常被误解的rapidxml方面。它存储您传递的任何字符串的指针,而不是复制内容。使用allocate_string函数,并查看此问题。rapidxml - overwriting previous xml_nodes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29753937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档