'空树'导致程序崩溃的功能

时间:2016-04-25 02:49:38

标签: c function boolean

我有一个empty_tree()函数,如果树是空的,它基本上返回一个真值,如果不是,则返回false。

bool empty_tree(AVL self)
{
    if (self == NULL)
    {
        return true;
    }
    else
    {
        return false;
    }
}

它的存在使得我的程序在没有评论的情况下更容易理解。现在,它在我的程序中的其他任何地方都能正常工但是,当我尝试在我的插入函数中使用它代替工作时:

if(self == NULL)

我的程序会崩溃。这并不是什么大问题,使用' if(self == NULL)就足够了,但我只是想知道是否有人有任何想法,为什么这会导致程序崩溃。正如我所说,它并不是非常重要,所以我不会费心包括更多的代码,但如果有人有任何猜测,我会很高兴听到你的想法。

编辑:根据要求,此处有效部分:

if (self == NULL)
    {
        self = (AVL)malloc(sizeof(struct avlNode));
        self->student_id = id;
        self->left = self->right = NULL;
    }

这里的代码将在更改为此时崩溃程序:

if (!empty_tree(self))
    {
        self = (AVL)malloc(sizeof(struct avlNode));
        self->student_id = id;
        self->left = self->right = NULL;
    }

0 个答案:

没有答案