Valgrind阅读无效

时间:2012-06-07 09:24:20

标签: c valgrind

我在valgrind中遇到了几个错误,指的是我的代码的一部分。基本上我有一个作为队列的结构链表。这是我的入队功能:

PcbPtr enqPcb(PcbPtr *headofQ, PcbPtr process){
    PcbPtr c = *headofQ;
    PcbPtr d = c;
    if (!*headofQ) {
        *headofQ = process;
        return *headofQ;
    }
    while (c->next) {
        c = c->next;
    }
    c->next = process;
    return d;
}

PcbPtr是指向结构的指针。 Valgrind在while循环中给了我各种各样的东西“条件跳转或移动取决于未初始化的值”等。它有什么明显的错误,或者超出了我所包含的范围?感谢

1 个答案:

答案 0 :(得分:0)

您可以考虑初始化next成员process所指的内容(如果在调用enqPcb()之前尚未完成):

PcbPtr enqPcb(PcbPtr *headofQ, PcbPtr process){
  PcbPtr c = *headofQ;
  PcbPtr d = c;
  process->next = NULL;

  ...