我有一个关于修改二叉树元素的问题。这是我得到的错误: 访问冲突读取位置0x00000018。 我想我正在访问一个空指针,但我不知道如何解决这个问题。
这是我使用的代码:
void modifyStatus(nod* root)
{
if (root->info.st == done)
root->info.st = reachedDest;
modifyStatus(root->st);
modifySatus(root->dr);
}
我必须指定“done”和“reachDest”是枚举的元素。
答案 0 :(得分:1)
我想我正在访问一个空指针,但我不知道如何解决这个问题。
在访问之前检查NULL
的指针:
void modifyStatus(nod* root) {
if (!root) {
return;
}
...
}
请注意,看起来像modifySatus(root->st);
的调用看起来像C,而不像C ++。在您控制nod
课程的情况下,您应该考虑将modifySatus
作为成员函数:
root->modifyStatus();