我正在尝试使用 c 结构实现链表,我使用 malloc 分配一个新节点然后为 分配空间value
,所以我一直在考虑如何在完成后释放结构,我的结构看起来像这样:
typedef struct llist {
char *value;
int line;
struct llist *next;
} List;
Run Code Online (Sandbox Code Playgroud)
我有一个遍历结构并释放其成员的函数,如下所示:
free(s->value);
free(s);
Run Code Online (Sandbox Code Playgroud)
我的问题是,这也免费int line
吗?
是的。
这int line
是结构的一部分,因此在您释放结构时会被释放。的情况也是如此char *value
。但是,这不会释放value
指向的内存,这就是您需要为此free
单独调用的原因。