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;
    }
}

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

void use_Destory(BTree &T)

第二个函数之间传递 引用

DestoryBTree(&T);

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;
    }
}