+ -
当前位置:首页 → 问答吧 → 用循环创建的方法创建链表的时候,链表中申请的空间如何释放?

用循环创建的方法创建链表的时候,链表中申请的空间如何释放?

时间:2011-12-21

来源:互联网

C语言环境下。
C/C++ code

//参数 stu为数组首地址 length为长度 head 为返回的链表首指针
struct Node *CreateList(struct Student *stu,int length,struct Node * head){
    struct Node * temp=head;
    int i;
    for(i=0;i<length;i++){
        temp->next=(struct Node*)malloc(sizeof(struct Node));
        temp=temp->next;
        temp->stu=stu[i];
    }
    temp->next=NULL;
    return head;
}
/*外部调用*/
int main(){
        ...
        struct Node *head =(struct Node *)malloc(sizeof(struct Node ));
        CreateList(stu,fileLength,head);
        ...
    free(head);
    head=NULL;
}


请问head里面的链表里的申请的空间,需要释放吗?

作者: a76184963   发布时间: 2011-12-21

链表的空间可以通过循环释放啊,从head->next起,注意每释放一个之前要修改head->next的指向。head的空间如果是普通结点,可以释放,如果记录链表首尾指针的特殊结点,不释放也可

作者: nuaazdh   发布时间: 2011-12-21