使C 将指针解释为零



我有这种代码

two->height   = max(two->right->height, two->left->height);

右两个或两个 ->左之一可以是指向null的指针,因此程序将出现故障。我正在寻找,如果两个 ->左为null,它将被转换为零,因此两个 ->右图将自动true。

有什么技巧可以克服这个问题吗?

这也可以工作:

two->height   =       max(
                         ( two->right != nullptr ? two->right->height : 0 ),
                         ( two->left  != nullptr ? two->left->height  : 0 )
                         );

您首先要在左右指针上执行检查,看看它们是否为空。沿着:

的线
if(two->right == NULL) {
    ...
}
else if(two->left == NULL) {
    ...
}
else {
    two->height = max(two->right->height, two->left->height);
}

有很多方法可以处理无效的指针。我只是为一个例子选择了一个简单的。

相关内容

  • 没有找到相关文章

最新更新