gpt4 book ai didi

c - 释放c中的链表

转载 作者:行者123 更新时间:2023-11-30 19:11:50 26 4
gpt4 key购买 nike

我正在尝试释放这些链接列表,但没有出现编译错误,但 valgrind 说“30 个分配,14 个释放,分配了 6,377 个字节”。这个函数不应该删除列表中的所有分配吗?

void free_mem(struct medico *head_m, struct paciente *head_p , struct consulta *head_c)
{
struct medico *tmp_m = NULL;
struct paciente *tmp_p = NULL;
struct consulta *tmp_c = NULL;

while (!head_m) {
tmp_m = head_m->next;
free(head_m);
head_m = tmp_m;
}

while (!head_p) {
tmp_p = head_p->next;
free(head_p);
head_p = tmp_p;
}

while (!head_c) {
tmp_c = head_c->next;
free(head_c);
head_c = tmp_c;
}
}

最佳答案

您的循环条件错误:

while (!head_m)

如果head_m不为NULL,则永远不会执行循环。要修复此问题,请删除 !:

while (head_m)

关于c - 释放c中的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933759/

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