我正在尝试使用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),但是null检查行一直被忽略并传递。
我的代码有点太长而无法包含更多内容,但您是否碰巧知道此类错误的常见原因?我在C ++中没有使用过null,但似乎这是一个相对常见的错误。也就是说,我无法在SO上找到这个问题的答案。
答案 0 :(得分:0)
嗯,你的问题中没有足够的信息来诊断这个问题,但是我会对它进行一次尝试。我最好的猜测是,在创建新节点时,您没有初始化left
和right
指针。未初始化指针的内容未定义(除非您非常幸运,否则不会是NULL
。