Вот код для освобождения весь связанный списокКак проверить бесплатно (узел) работает
void free_list(RecordType *list)
{
RecordType *tempNode; /* temporary Node to hold on the value of previous node */
while(list != NULL) /* as long as the listnode doesn't point to null */
{
tempNode = list; /* let tempNode be listNode in order to free the node */
list = list->next; /* let list be the next list (iteration) */
free(tempNode); /* free the node! */
}
}
Я думаю, что сам по себе этот код работает нормально (?), Но я понятия не имею, как проверить. я только применил теорию (например # из FreeS должен = к # из mallocs)
Так вот некоторые вопросы, которые я задаюсь вопросом ...
- ли этот метод работать?
- Нужно ли мне malloc tempNode?
- Я инициализируется tempNode, прежде чем время цикла ... но после того, как я бесплатно, tempNode до сих пор работает ... Я не реально получить, что часть
Теория, которую я использовал:
- # свободные() == # из таНоса()
- Вам нужен временный узел для хранения текущего узла
- Пусть текущий узел, равного следующего узел
- свободных текущего узла, используя Tempor ary node
Если какая-либо из моих теорий звучит неправильно, объясните, пожалуйста!
Спасибо!
Его рабочий, предполагая, что вы сделали, по сути, построить свой список правильно (и это выглядит, как вы, вероятно, сделал). Ваш список теорий спот-на. – WhozCraig