可以将NULL指针变量分配给指针变量吗



所以我在C++上用链接表示来处理最大堆树。由于我无法上传代码,因为它很长,但在调试时我意识到执行将停止在将Null指针分配给指针的表达式处。例如

// if node->left_child->right_chile == NULL
node->right_child = node->left_child->right_child; // the program will exit here.

这种操作经常发生在我的代码中的delete方法中,所以我也在想,如果我多次分配NULL变量,它会导致错误。例如在上述例子的延续中,

node->parent->left_child = node->right_child;

我试图弄清楚NULL指针的行为,但我无法完全理解。你能帮帮我吗?

您可以将NULL指针变量分配给指针变量吗?

是。只要从中分配的值已经初始化,就可以将指针分配给另一个指针。如果这个值为空,那就没问题。例如,这很好:

Node* a = nullptr;
Node* b = nullptr;
a = b;
node->right_child = node->left_child->right_child; // the program will exit here.

这意味着nodenode->left_child中的一个可能不是有效的指针。任何一种都会导致不明确的行为。


p.S.不要在C++中使用NULL宏。它已被nullptr淘汰。

相关内容

  • 没有找到相关文章

最新更新