C++链表实现员工数据库无法新增多节点且display不执行问题排查
代码错误原因
- 核心错误出在
Link_List类的构造函数中,你错误使用了相等比较运算符==代替赋值运算符=:
Link_List() { head==NULL; // 这里是比较操作,没有给head赋值,属于逻辑错误 }
- 该错误会导致
head指针没有被初始化为NULL,成为野指针,指向随机内存地址:- 执行
create函数插入第一个节点时,if(head==NULL)的判断结果大概率为假,直接走else分支 - 后续执行
p=head后访问p->next,属于非法内存访问,程序直接触发崩溃,因此不会执行后续的"是否继续添加"提示输入逻辑,也不会运行display函数就提前终止。
- 执行
修复方案
只需要将Link_List构造函数中的比较运算符改为赋值运算符即可:
Link_List() { head=NULL; // C++11及以上版本推荐写head=nullptr;更规范 }
修复后程序即可正常运行:输入完员工编号后会提示是否继续添加,结束添加后会自动调用display函数输出所有已录入的员工编号。
内容的提问来源于stack exchange,提问作者user15915509
相关产品推荐
相关产品推荐

