链表的创建查看
同遍历链表类似,区别在于p_mov每指向某个节点后都将该节点释放
1、释放前要先保存下一个节点,释放后备份恢复给p_mov,否则释放了当前节点,下一个节点的地址就将失去;2、依次将所有节点释放后,最后返回NULL(标示释放完毕)。
结构体节点:
typedef struct student {
int num; //学号
int score; //分数
char name[20];
struct student *next;//指针域
}STU;
demo:
void link_free(STU **p_head)
{
STU *p_mov;
while(*p_head!=NULL)
{
p_mov=*p_head;
*p_head=p_mov->next;
free(p_mov);
}
}