
第一次写这个程序时,我在增加节点的位置是这么写的
while(pr!=NULL)
{
pr = pr->next;
}
pr = p;//p为申请好的一块结构体内存,pr最初等于head(头指针)
之后编译运行后,并没有添加成功新的节点。
看了标准答案后发现书上是这么写的。
while(pr->next !=NULL)
{
pr = pr->next;
}
pr->next = p;
看了之后感觉我写的和书上其实没什么区别啊,百思不得其解。
怀揣着疑问我回到了宿舍,迫不及待地向几个舍友求教。
不过我这个错误的确很有迷惑性,大家都有点蒙住了。。。
最终舍弃了午睡时间,想啊想,舍友hj终于明白了我错在了哪。
错误就在于,不可以使用
pr != NULL
这个条件来判断,因为如果用这个条件判断,循环结束后,pr的值就是为空,这时候它的确赋上了next的值,但因为next为空,你是无法通过给pr接上一个节点来间接给这个next接上节点的!
(END)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)