ポインタを作成して試した後delete
、エラーメッセージが表示される理由について混乱しています。以下は、私が使用してきたいくつかの要約コードです。
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;
}
}
私の理解resultTree
では、メモリはまだヒープ上にあるため、削除する必要があります。ただし、それを実行しようとすると、次のようになります。
*** glibc detected *** /home/nathan/Programming/Project_Code/MyBoostXmlTest/Debug/MyBoostXmlTest: free(): invalid pointer: 0x00000000018347b8 ***
delete
この場合、呼び出しによってエラーが発生する理由を誰かが説明できますか?