我在我的程序上运行 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;
}