删除某一条通讯录信息
c语言吧
全部回复
仅看楼主
level 1
贴吧用户_JQZ24Q1
楼主
信息用链表组织,del函数实现删除某一条信息,但每次输入完要删除的编号就跳转到stdio.h文件,想问一下问题在哪
2024年05月04日 05点05分
1
level 14
君不修º
你没有判断 h->next 和 h->next->next 是否为空,还有你没有对节点free
2024年05月04日 06点05分
0
贴吧用户_JQZ24Q1
加了free函数就出现第一个问题
2024年05月04日 06点05分
level 1
贴吧用户_JQZ24Q1
楼主
完整程序
2024年05月04日 06点05分
3
贴吧用户_JQZ24Q1
add函数中已经将每一条信息的编号num设置好了,如果没有信息的话num就还是0
2024年05月04日 06点05分
level 12
究极小白
使用一个指针先判断这个指针是不是有效的是最基本的
2024年05月04日 06点05分
4
贴吧用户_JQZ24Q1
在add函数和list函数时都是正常的
2024年05月04日 07点05分
level 9
何度-137
在del函数scanf语句下添加:int c;
while ((c = getchar()) != '\n' && c != EOF);
2024年05月04日 06点05分
5
何度-137
@贴吧用户_JQZ24Q1
scanf会将非法输入留在输入缓冲区中,不会从缓冲区移除,当程序再次运行时,剩余的非法输入字符会被误解为下一次输入,导致程序行为异常。删除节点之前,需要清除输入缓冲区以确保没有非数字字符
2024年05月04日 07点05分
贴吧用户_JQZ24Q1
能说一下这样做的理由吗
2024年05月04日 07点05分
贴吧用户_JQZ24Q1
@何度-137
好的谢谢
2024年05月04日 08点05分
1