Я вставил свой код функции ниже, чтобы освободить содержимое следующей структуры:
struct LetterFrequencyPair
{
char character;
int frequency;
struct LetterFrequencyPair* next;
};
Создание и отображение списка не является проблемой и работает нормально.Однако, когда я добрался до свободной функции, ничего не происходит.Чтобы попытаться определить причину проблемы, я добавил в свой код напечатанные операторы шагов.(Посмотрите в функции ниже), чтобы увидеть, сколько кода выполняется.На выходе все, что я получаю, это «Шаг 1» и больше ничего, что может указывать на ошибку после этой строки.Я не уверен, что здесь неверно, так как это тот же формат, который я использовал в другом упражнении со связанным списком.
Пожалуйста, дайте мне знать, если вы заметите, где я ошибся.Также, если вам нужно увидеть весь код (я уверен, что вы не должны этого делать, так как именно здесь есть ошибка), дайте мне знать, и я отредактирую вопрос, чтобы добавить его.:)
void freeList()
{
struct LetterFrequencyPair* temp;
temp = root;
if (temp == NULL)
{
printf("List is empty.\n");
}
else
{
printf("step 1\n");
while(temp != NULL);
{
printf("Step 2.\n");
struct LetterFrequencyPair* nexttemp = temp->next;
printf("step 3\n");
free(temp);
printf("Step 4\n");
temp = nexttemp;
printf("5\n");
}
printf("\n");
}
}