我正在尝试让 NULL 或 nullptr 在 C++ 中工作。
假设我正在对二叉树进行无序遍历,如下所示:
template <class DataType>
void printInorder(someNode<DataType>* node)
{
if (node == NULL)
return;
/* first recur on left child */
printInorder(node->left);
/* then print the data of node */
printf("%d ", node->data);
/* now recur on right child */
printInorder(node->right);
}
我尝试将if(node == NULL(设置为if(node == nullptr(。我也尝试了 if(!node(,但空检查行一直被忽略和传递。
我的代码有点太长,无法包含更多内容,但是您是否碰巧知道此类错误的任何常见原因?我在C++中没有经常使用 null,但这似乎是一个相对常见的错误。也就是说,我一直无法在SO上找到这个问题的答案。
好吧,您的问题中没有足够的信息来诊断此问题,但我会尝试一下。 我最好的猜测是,在创建新节点时,您没有初始化left
和right
指针。 未初始化指针的内容是未定义的(除非您非常幸运,否则不会NULL
(。