gpt4 book ai didi

c - 删除二叉树中的所有内容会产生随机段错误

转载 作者:行者123 更新时间:2023-11-30 14:22:39 25 4
gpt4 key购买 nike

所以我有一个完整的程序,它将值添加到二叉树中。然后,它可以按前序、后序和按顺序列出值。现在一切都工作得非常好,除了当我运行我的 deleteAll 函数时,它使程序不稳定,并且在添加值或列出树时随机地产生段错误。我不太确定出了什么问题,我对C还是个新手,无法理解是什么原因造成的。显然它在 deleteAll 函数中,所以在这里......

void deleteAll(node* *hd){
node* curr = *hd;
if(curr->left != NULL){
deleteAll(&curr->left);
}
if(curr->right != NULL){
deleteAll(&curr->right);
}
free(curr);
}

在我删除所有内容并以任何顺序列出后,它会给我诸如 321294124 之类的值,您知道当它不存在时给出的值。所以我认为这没关系,但也许这就是问题所在。

最佳答案

void deleteAll(node* *hd){
if(*hd != NULL){
node* curr = *hd;
if(curr->left != NULL){
deleteAll(&curr->left);
}
if(curr->right != NULL){
deleteAll(&curr->right);
}
free(curr);
*hd = NULL;
}
}

明白了,谢谢arrowdodger。

关于c - 删除二叉树中的所有内容会产生随机段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13610273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com