我正在尝试通过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 ++并不熟悉,但似乎一切都应该有效。
答案 0 :(得分:1)
在应用Sherlock Holmes方法进行错误搜寻(1)之后,最可能的解释是left
和right
类成员未明确初始化为nullptr
。
(1)“一旦你消灭了不可能的事物,无论遗骸多么不可能,一定是真理。”