请教-----Debug Assertion Failed。
今天写了一个二叉树的类,成员函数
template<class DataType>
void BinaryTree<DataType>::DelTree(BinaryNode<DataType>* T_Root){
if(T_Root!=NULL){
DelTree(T_Root->left);
DelTree(T_Root->right);
delete T_Root;//*************
}
}
目的是要清空以节点指针T_Root为根节点的二叉树。其中BinaryNode<DataType>是包含数据域data,左后继节点left,右后继节点right的模板类,编译成功通过,但执行时出现下面的对话框
Debug Assertion Failed
Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
单步调试中删除最左边的叶子节点时//*************处出错。
网上查到一些信息说是堆栈内存释放的问题,但没弄清楚是怎么回事,没有访问越界,也没有重复释放内存,可能是递归释放内存会有问题。请各位高手帮忙看一下,兄弟不胜感激!