在BST中插入节点时的EXC_BAD_ACCESS(EXC_i386_GPFLT)

时间:2016-08-07 19:59:15

标签: c++ xcode binary-tree binary-search-tree

我正在尝试通过C ++从XCode中的给定数组填充二进制搜索树。 我正在使用递归以下列方式生成BST。

void insert(int key, Node **current)
{
    if(*current == NULL)
    {
        Node *newnode = new Node(key);
        *current = newnode;
    }
    else
    {
        if(key < (*current)->value) ---------EXCEPTION HERE
            insert(key, &(*current)->left);
        else
            insert(key, &(*current)->right);
    }
}

这是我的插入功能

k

有时会抛出异常EXC_BAD_ACCESS(代码= EXC_i386_GPFLT)。 在使用C#的Visual Studio中,相同的逻辑工作正常。 我在c ++中做内存有问题吗? 我对c ++并不熟悉,但似乎一切都应该有效。

1 个答案:

答案 0 :(得分:1)

在应用Sherlock Holmes方法进行错误搜寻(1)之后,最可能的解释是leftright类成员未明确初始化为nullptr

(1)“一旦你消灭了不可能的事物,无论遗骸多么不可能,一定是真理。”