首页 > 解决方案 > 初始化指向对象的指针

问题描述

给定一个对象,例如 listNode。

如果我初始化一个指向对象的指针:

listNode* head_node;

这和有什么不同

listNode* head_node = NULL;

标签: c++pointers

解决方案


在第一种情况下listNode* head_node;,编译器将分配一些内存来保存指针。该内存可以包含任何值(例如,它可能是该位置用于其他用途时的某个随机值),实际上,读取它会导致未定义的行为。

在第二种情况下listNode* head_node = NULL;,编译器将分配一些内存来保存指针,然后写入NULL该位置以保证指针不变NULL

需要注意的一件事是,您应该使用nullptr而不是NULL. 请参阅此答案以了解原因。


推荐阅读