포인터를 만든 후 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