链表删除首节点出问题

2025-06-28 02:19:38
推荐回答(1个)
回答1:

void main()
{
struct student *ls;
ls=creat();//调用creat函数后建立了一个单向动态链表
print(ls);
ls = del(ls,16101);  //    这里需要这样用
// 虽然 del删除函数中,已经测试过,头指针head已经指向第二个结点了,
// 可head这个值不能传递给ls,故返回后,主函数输中ls还是没有改变
// 这里把返回值,新的head的值通过赋值赋给ls,即可实现主函数中ls的改变
// 同时要注意,del函数中倒数第二行的free(p1); 是一定需要的,否则会内存泄露
// 也就是不再使用的以前申请的内存块要归还系统,
print(ls);
clear(ls);
}