首页 > 解决方案 > Valgrind 将指针与 NULL 进行比较

问题描述

我正在使用 Valgrind 调试我的代码,当我struct通过将 a 与NULL.

void main()
{
    int *unassignedPointer;
    if(unassignedPointer == NULL)
        printf("This Pointer is NULL\n");
}

此代码编译并运行,但通过 Valgrind 运行时会发出警告:条件跳转或移动取决于未初始化的值。比较它的重点NULL是确定它是否已初始化。这是一种危险的做法,还是我应该忽略这些警告?

标签: cvalgrind

解决方案


你当然不应该忽略警告,你应该通过初始化指针来修复它:

int *pointer = NULL;

通常,您无法检测是否已分配变量,没有神奇的“无值”值,变量的所有位都用于包含实际值。


推荐阅读