请帮我完成一个项目,我不知道如何释放这个结构。 当我使用valgrind它说记忆丢失,因为我不知道如何使用免费
typedef struct list{
int value1;
int value2;
struct list * next;
}List;
List *first;
List *last;
void create_list(){
List *aux;
aux = (List *) malloc(sizeof(List));
first= aux;
last= first;
}
void insert(int a, int b){
List *aux;
aux = (List *) malloc(sizeof(List));
aux->value1=a;
aux->value2=b;
last->next=aux;
last= last->next;
aux->next= NULL;
}
int main(int argc, const char* argv[]){
create_list();
insert(1,2);
//How can i free?
}
答案 0 :(得分:2)
怎么样
while(first != last) {
List* temp = first->next;
free(first);
first = temp;
}
free(last);
答案 1 :(得分:1)
通过首先获取下一个节点来迭代所有节点,然后释放当前节点。完成后,释放列表结构本身......