gpt4 book ai didi

c - 如何修复我的代码以清除链接结构中的节点

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:36 26 4
gpt4 key购买 nike

我之前问过类似的问题,但现在遇到了不同的问题。你能看看吗?我正在尝试释放在我的程序中创建的链接结构中的节点。这是结构。

struct node {
unsigned x;
double y;
struct node *next;
};
typedef struct node Nodes, *This;

函数声明

void freeNodes(Nodes *a);
void freeThis(This *);

函数freeNodes:

void freeNodes(Nodes *a) 
{ free(a);
print ("success");

}

函数freeThis:

我不知道如何解决这个问题,所以我可以从整个链表中释放节点。

void freeThis(This *p)
{
Nodes *tmp;

while (p != NULL)
{

(*tmp) = Nodes *p;
*p=(*p)->next;

freeNodes(tmp);
tmp = NULL;
}

}

最佳答案

试试这个

void freeThis(This *p){
Nodes *tmp;

if(!p) return;

while (*p != NULL){
tmp = *p;
*p=(*p)->next;

freeNodes(tmp);
}

}

关于c - 如何修复我的代码以清除链接结构中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25588168/

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