珙白 2022-01-01 22:58 采纳率: 80%
浏览 55
已结题

B树销毁用第一个函数可以,但用另一个函数套第一个函数根节点就没法清空

void DestoryBTree(BTree &t){
    BTree p=t;
    if(p!=NULL){
        for(int i=0;i<=p->keynum;i++){
            DestoryBTree(p->ptr[i]);
        }
        free(p);
    }
    t=NULL;
}
void use_Destory(BTree T){
    DestoryBTree(T);
    if(T == NULL){
        cout<<"清空数据库成功"<<endl;
    }
    else{
        cout<<"清空数据库失败"<<endl;
    }
}
  • 写回答

4条回答 默认 最新

  • _GX_ 2022-01-02 07:41
    关注

    void use_Destory(BTree& T)需要传引用或指针,否则的话,DestroyBTree()t赋值NULL不会影响上一层函数传递的变量值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月10日
  • 已采纳回答 1月2日
  • 赞助了问题酬金 1月1日
  • 创建了问题 1月1日