读书人

找不到哪个指针没回收了们帮看一下

发布时间: 2012-03-22 17:43:57 作者: rapoo

找不到哪个指针没回收了,大虾们帮看一下啊
void familytree::clear()
{
recursive_clear(root);
}

void familytree::recursive_clear(Person *&sub_root)
{
Person *temp=sub_root;
if(sub_root==NULL) return;
recursive_clear(sub_root-> child);
recursive_clear(sub_root-> brother);
sub_root=NULL;
delete temp;
}
familytree::~familytree()
{
clear();
}
其中root,为指向person 结构体的指针,是familytree类的保护变量,
child和brother都是person结构体中指向person结构体的指针。
编译链接没问题,运行到主程序最后一句时报错,我查了一下就是有指针没回收,
当我把析构函数中的clear();注释掉以后程序就没问题了,所以我怀疑是clear()函数没有处理好,可是我找不到啊,找了一天了,大虾们帮忙啊

[解决办法]
m

读书人网 >C++

热点推荐