私はポインタを作成した後、なぜdelete
を受け取ったのか、そしてエラーメッセージが表示されるのはどういうふうに混乱しているのですか?それのメモリはヒープに残っているので、私の理解resultTree
からポインタのエラーを削除する
func()
{
ptree *resultTree = new ptree;
resultTree = &getNodeptree(pt);
delete resultTree;
}
ptree& getNodeptree (ptree &pt)
{
BOOST_FOREACH(ptree::value_type &v, pt.get_child("root"))
{
ptree &temp = v.second;
return temp;
}
}
まだ削除する必要がある:以下は、私が取り組んできたいくつかの凝縮コードです。しかし、それをやろうとすると、生成します。delete
を呼び出すと、このインスタンスでエラーが発生し、なぜ
*** glibc detected *** /home/nathan/Programming/Project_Code/MyBoostXmlTest/Debug/MyBoostXmlTest: free(): invalid pointer: 0x00000000018347b8 ***
誰かが説明できますか?
'ptree'とは何ですか? –
'func()'の 'pt'とは何ですか? –
ptはBoostプロパティツリーです:http://www.boost.org/doc/libs/1_41_0/doc/html/property_tree.html – nf313743