Usunięcie elementów listy jednokierunkowej

0

Witam
Mam problem z funkcją usuwającą parzyste elementy w liście jednokierunkowej.

struct list {
	int key;
	list *next;
}*head;

void remove() {
	list *temp;
	list *prev;
	temp = head;
	while (temp != NULL) {
		if (((temp->key) % 2) == 0) {
			head = head->next;
			prev = temp->next;
			free(temp);
		}
		else {
			temp = prev;
			temp = temp->next;
		}
	}
}

Błąd pokazuje, że używam wskaźnika prev zanim go zainicjuje.
The variable 'prev' is being used without being initialized.
Mógłby ktoś wskazać mój błąd?
Dziękuje

2

Jasne. Co się wg ciebie stanie jeśli wejdę do pętli i warunek ifa nie jest spełniony? Wejdę do else gdzie masz temp = prev; czyli przypisujesz gdzieś wartość prev która nigdy nie została na nic sensownego ustawiona.

0

Faktycznie, głupi jestem i nie pomyślałem :).
Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1