C语言链表插入问题 请指导

[复制链接]
查看11 | 回复3 | 2012-7-28 10:36:02 | 显示全部楼层 |阅读模式
InsertList(p,p1);//在第一个节点之前插入有问题啊啊啊啊啊啊// 首先,你在外面已经分配了p1的空间,那么在里面没必要重新分配// 其次,InsertList改变了链表的头节点位置,这里要改成p=InsertList(p,p1);
// 或者OutputList(p);改为OutputList(head);// 再次(这一点是很重要的),每次malloc分配的空间都要你自己用free来释放...
回复

使用道具 举报

千问 | 2012-7-28 10:36:02 | 显示全部楼层
说实话,你这个代码写的稍微有点不好,主要有两点:1)代码混乱,返回值没有被使用;如果返回值不被使用,返回干嘛?2)内存泄漏(在插入的时候,两次malloc)。当然你这个代码没有什么危险(因为你很快就执行结束了),但是在大型系统里,程序不会很快结束,甚至这段代码会重复执行,那么你的泄漏就很危险。 问题的导致,就出在1)。p在链表创建的时候返回,...
回复

使用道具 举报

千问 | 2012-7-28 10:36:02 | 显示全部楼层
InsertList(p,p1);//在第一个节点之前插入有问题啊啊啊啊啊啊 OutputList(p); 当前的p插入p1之后还是之前的p没有改变他的值, 在InsertList前面=一下就好了,是插入正确的.p=InsertList(p, p1);...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行