我必须编写一个带列表的函数DeleteList(),释放其所有内存,并将其头部指针设置为NULL(空列表)。
这似乎可行,但idk确实可行,因为我实现的方式(我认为是错误的方式)与解决方案中的方式大不相同。我假设它仅删除几个节点,或者内存管理有问题。
private static final ObservableList<Country> countryList = FXCollections.observableArrayList();
答案 0 :(得分:3)
您实际上并没有释放整个链表,而是要反复释放头节点。我建议您使用以下方法。
void DeleteList(struct node** headRef) {
struct node *ptr = *headRef;
struct node *temp = NULL;
while(ptr)
{
temp = ptr;
ptr = ptr->next;
free(temp);
}
*headRef = NULL;
}