作者haosan (K211)
看板C_and_CPP
标题[问题] 关於在list 中移除节点
时间Mon Apr 20 00:23:21 2009
node* ptr,pre_ptr = NULL;
for(ptr=head->link;ptr!=NULL && ptr->x!=x;ptr=ptr->link)pre_ptr = ptr;
if(pre_ptr==NULL)
ptr ->head = ptr->link;
else
pre_ptr->link = ptr->link;
请问这段程式有错吗
这是一个fuction 起初还可以执行 但被执行几次後就会错误
而且出在 else
pre_ptr->link = ptr->link; 这边
请高手指教一下 ~"~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.208.131
1F:推 gundan:你的 pre_ptr 不是等於 ptr 吗? 04/20 00:41
2F:→ gundan:这样 pre_ptr->link = ptr->link; 有什麽意义? 04/20 00:42
3F:→ haosan:pre_ptr = ptr的下一行指令不是ptr = ptr->link吗 04/20 01:01
4F:→ haosan:ptr=ptr->link後检查条件跳出回pre_ptr不是会在ptr之前吗? 04/20 01:02
5F:推 gundan:阿 我搞错了...抱歉!那你贻除掉的节点有释放记忆体吗? 04/20 01:54
6F:→ gundan: 移除 04/20 01:54
7F:→ haosan:痾 我也抱歉 其他地方的程式码使得 ptr->x永远不等於x 04/20 02:09
8F:→ haosan:所以是错在ptr->link (ptr已为NULL) g大 谢噜 04/20 02:10
9F:推 gundan:好像没帮到忙 ... 04/20 14:14