C++中的空检查

  • 本文关键字:C++ c++ null
  • 更新时间 :
  • 英文 :


我正在尝试让 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上找到这个问题的答案。

好吧,您的问题中没有足够的信息来诊断此问题,但我会尝试一下。 我最好的猜测是,在创建新节点时,您没有初始化leftright指针。 未初始化指针的内容是未定义的(除非您非常幸运,否则不会NULL(。

相关内容

  • 没有找到相关文章

最新更新