【发布时间】:2023-12-02 22:37:02
【问题描述】:
我在 valgrind 说“条件跳转或移动取决于未初始化的值”时遇到很多错误。
下面是其中一个块。它们都是相似的:
vasm_sourceline_info_t* line = asmState->firstLine;
if (line == NULL) return;
while ((line = line->next) != NULL)
{
printf ("[%s(%i)] %s\n", line->fileName, line->lineNumber, line->data);
}
错误本身在 while() 行。 vasm_sourceline_info 是一个双向链表结构。代码 ~works~ 但这个错误令人担忧。代码中是否还有其他东西会踩到内存,或者上述函数在某些方面存在缺陷?
【问题讨论】:
-
所有next指针都初始化了吗?
-
你知道你会认为这将是我要看的第一件事......不,虽然我在添加/删除/追加逻辑中很小心,但初始化函数没有设置下一个/上一个为NULL ...问题解决了。谢谢!
-
有时在有效代码中也会发生这种情况。
标签: c linked-list valgrind