我有以下结构的链表:
struct pomiar {
unsigned int nr_pomiaru;
unsigned int nr_czujnika;
char data_i_czas[20];
double temp;
struct pomiar *nast;
};
我用
malloc()
分配所有元素:每个元素都由前一个元素指向。最佳答案
是的,您应该遍历列表,获取当前元素的 nast
指针的副本,然后释放当前元素,然后将复制的 nast
值放入当前元素中。内存空闲后,您将无法(可靠地)访问它——不要!因此复制。
void free_list(struct pomiar *list)
{
while (list != NULL)
{
struct pomiar *nast = list->nast;
free(list);
list = nast;
}
}
关于C:删除链表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49478325/