gpt4 book ai didi

c - Free() 指向 Struct 的指针,位于 Struct 内部

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:47 25 4
gpt4 key购买 nike

我似乎找不到如何 free() 子结构。

结构:

typedef struct
{
char ID[5];
location *loc;
} observer;

typedef struct
{
double lat;
double lng;
} location;

我的 Free() 包装器是:

void free_obs_list_node(void *data)
{
free(*(observer **)data);
}

我可以释放观察者结构。我无法释放指向 Struct 位置的指针。这是我的问题:如何释放 location *loc;

指向的 location 结构

我使用了 free() 的包装器,因为它们是通用链表中的节点。

最佳答案

free 函数将 void* 作为参数,因此转换不算数。你只需要给出一个指向你想要释放的内存位置的指针:

free(data->loc);

关于c - Free() 指向 Struct 的指针,位于 Struct 内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27382159/

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