我有一个关于修改二叉树元素的问题。这是我得到的错误: 访问冲突读取位置 0x00000018。 我想我正在访问一个空指针,但我不知道如何解决这个问题。
这是我使用的代码:
void modifyStatus(nod* root)
{
if (root->info.st == done)
root->info.st = reachedDest;
modifyStatus(root->st);
modifySatus(root->dr);
}
我必须指定“done”和“reachedDest”是枚举的元素。
最佳答案
I think I'm accessing a null pointer but I don't know how to solve the problem.
在访问它之前检查指针是否为 NULL
:
void modifyStatus(nod* root) {
if (!root) {
return;
}
...
}
请注意,类似于 modifySatus(root->st);
的调用看起来像 C,而不像 C++。在您可以控制 nod
类的情况下,您应该考虑将 modifySatus
设为成员函数:
root->modifyStatus();
关于c++ - 修改二叉树的元素c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31002649/