2010-09-05 88 views
2

我想实现链接列表与C结构,我用malloc分配一个新的节点,然后分配空间为value,所以我一直在想如何释放结构一次我与他们所做的,我的结构是这样的:释放结构与指针和非指针变量

typedef struct llist { 
    char *value; 
    int line; 
    struct llist *next; 
} List; 

我有一个通过结构和自由及其成员这样走的函数:

free(s->value); 
free(s); 

我的问题是,这是否也免费int line

回答

3

是的。

int line是该结构的一部分,因此在释放结构时可以释放它。 char *value也是如此。但是,这不会释放内存,因此您需要分别拨打free

1

是的。当你对于s分配的内存是分配给这三个内存:

指针为char(值)
整数(线)
指针结构LLIST(下)

当你释放S,所有的存储都消失了(包括线路的内存)。