与 NULL 进行比较时,条件跳转或移动取决于未初始化的值

问题描述 投票:0回答:0

我在我的程序上运行 valgrind --leak-check=full,我在我的代码中经常遇到同样的错误

==40306== Conditional jump or move depends on uninitialised value(s)
==40306==    at 0x10D522: close_all_watchers (ticker.c:52)
==40306==    by 0x10DE2A: ticker (ticker.c:225)
==40306==    by 0x10D444: main (main.c:8)

有问题的行是下面的 while 语句。不过,我确实想将它与 NULL 进行比较。我读到这并不是真正的错误,但它确实在摘要中显示为错误。我该如何解决这个问题?

WATCHER *ptr = NULL;
ptr = watchers_list_head;

info("stopping all watchers");
while (ptr) {
    ptr->type.stop(ptr);
    ptr = ptr->next;
}
c valgrind
© www.soinside.com 2019 - 2024. All rights reserved.