c - Valgrind 将指针与 NULL 进行比较
问题描述
我正在使用 Valgrind 调试我的代码,当我struct
通过将 a 与NULL
.
void main()
{
int *unassignedPointer;
if(unassignedPointer == NULL)
printf("This Pointer is NULL\n");
}
此代码编译并运行,但通过 Valgrind 运行时会发出警告:条件跳转或移动取决于未初始化的值。比较它的重点NULL
是确定它是否已初始化。这是一种危险的做法,还是我应该忽略这些警告?
解决方案
你当然不应该忽略警告,你应该通过初始化指针来修复它:
int *pointer = NULL;
通常,您无法检测是否已分配变量,没有神奇的“无值”值,变量的所有位都用于包含实际值。
推荐阅读
- javascript - 如何显示实际用户照片,如果他没有显示未知照片
- node.js - 回调在我创建索引时执行到早期
- karate - 当 karate-config.js 失败时,它会为每个功能打印错误
- c++ - 有没有办法将枚举类隐式转换为 std::byte?
- reactjs - 什么是标头以及如何从 REST API 获取数据?
- android - 如何不使用 Long TextView 将 ImageView 推离屏幕?
- rest - Sprint Data Rest 是否支持开箱即用的列查询?
- java - 在 Linux(i.MX 处理器)上运行 .jar 文件时 JMenuBar 损坏
- python - 将字典保存到 csv python
- ionic-framework - 如何在本地存储中设置和获取此表单的值