c++ - 初始化指向对象的指针
问题描述
给定一个对象,例如 listNode。
如果我初始化一个指向对象的指针:
listNode* head_node;
这和有什么不同
listNode* head_node = NULL;
解决方案
在第一种情况下listNode* head_node;
,编译器将分配一些内存来保存指针。该内存可以包含任何值(例如,它可能是该位置用于其他用途时的某个随机值),实际上,读取它会导致未定义的行为。
在第二种情况下listNode* head_node = NULL;
,编译器将分配一些内存来保存指针,然后写入NULL
该位置以保证指针不变NULL
。
需要注意的一件事是,您应该使用nullptr
而不是NULL
. 请参阅此答案以了解原因。
推荐阅读
- python - Python max() 函数忽略列表中第一项的最大值
- reactjs - 如何避免我的 PostgreSQL 日期时间中的“Z”
- android - 获取在 android 设备中配置的帐户数量
- r - R Shiny stop 用于用户输入并显示所有图
- javascript - 运行两台服务器时NodeJS服务器错误
- neo4j - Neo4Js 客户端错误 apoc.load.csv 过程失败。由 ArrayIndexOutofBoundException 1 引起
- r - 没有假定更改时的更改点检测
- android - smoothScrollToPosition 在 recyclerView 中不起作用
- c - _fsopen() 究竟是如何工作的?
- oracle - PLSQL 块因“进入”而失败