c++程序抛出异常:: 0xC0000005: 写入位置 0xCDCDCDCD 时发生访问冲突?

练习了一个非常简单的链表,但这个错误却是将我弄得手足无措... 练习了一个非常简单的链表,但这个错误却是将我弄得手足无措 展开
 我来答
格里编程办公技巧
科技发烧友

2021-07-14 · 编程、办公知识分享与学习
格里编程办公技巧
采纳数:434 获赞数:879

向TA提问 私信TA
展开全部

这段代码有几个小问题:

如图标记1:这里虽然没错,但是建议最好不要返回NULL, 还是返回head。因为如果之前链表不为空,只是在加一个节点失败返回NULL,我想你也是用head来接收返回值。那就会因为一个失败把原来的链表没有头了,不能用但是一直占用内存。

如图标记2:这里如果链表为空,你的head是怎么初始化的,如果是初始化为NULL,那这里必然会失败出现你所描述的问题。建议你初始化为NULL,然后这里判断如果为NULL就返回node。

如图标记3:这一句在这里没有什么意义。

如图标记4:这里我猜想你的Node和Data是类对象,因为看你后面引用了类函数。那这里就要注意了,最好用new来创建对象,使用malloc创建对象是不会调用构造函数的,而new是会调用构造函数创建对象。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式