我想免費C.所有的鏈接列表工作正常,但Valgrind是告訴我條件跳轉或移動依賴於未初始化值 - 釋放一個鏈表
Conditional jump or move depends on uninitialised value(s)
at 0x401400: mtf_destroy
下面的代碼:
list_elt *head;
void mtf_init() {
list_elt *current;
head = malloc(sizeof(list_elt));
current = head;
for (int i = 0; i < LIST_SIZE-1; i++) {
current->value = (BYTE) i;
current->next = malloc(sizeof(list_elt));
current = current->next;
}
current->value = LIST_SIZE-1;
}
void mtf_destroy(list_elt *elt) {
if (elt->next != NULL)
mtf_destroy(elt->next);
free(elt);
}
我該如何解決這個問題?謝謝!
我沒有看到任何地方將最後一個元素的' - > next'設置爲NULL。 – Mat
這確實解決了這個問題,以及@alk提出的解決方案。謝謝你們 – user720491
計算你的代碼執行的malloc數量。 –