gpt4 book ai didi

C:删除链表

转载 作者:行者123 更新时间:2023-12-05 01:37:47 25 4
gpt4 key购买 nike

我有一个包含以下结构的链表:

struct pomiar {
unsigned int nr_pomiaru;
unsigned int nr_czujnika;
char data_i_czas[20];
double temp;
struct pomiar *nast;
};

我正在使用 malloc() 分配所有元素:每个元素都由前一个元素指向。

While freeing the list, should I go through the whole list and free the *nast pointers till the last one or what exactly should I do?

最佳答案

是的,您应该遍历列表,复制当前元素的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com