我在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循环中给了我各种各样的东西“条件跳转或移动取决于未初始化的值”等。它有什么明显的错误,或者超出了我所包含的范围?感谢
答案 0 :(得分:0)
您可以考虑初始化next
成员process
所指的内容(如果在调用enqPcb()
之前尚未完成):
PcbPtr enqPcb(PcbPtr *headofQ, PcbPtr process){
PcbPtr c = *headofQ;
PcbPtr d = c;
process->next = NULL;
...