删除链表的节点,关于delete和free

本文探讨了C++中链表删除节点的方法,并通过《C++入门经典》一书中的实例进行了解析。同时,文章详细对比了delete与free两个操作符在内存管理上的区别,包括它们适用的对象、调用过程中的行为差异以及潜在的风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近温习链表的知识,看到《C++入门经典》,第九版,P528。

这里面讲解了链表的删除节点。

 

delete nodeToDelete;

 

用这样一句话就删除节点了,十分方便。

不过,我还是有些疑问,这是不是太简单了。然后就查询了一下,果然有学习到了一个知识点,我已经会的,忘记了,这次又学一遍,应该不会忘记了。

 

关于delete和free的区别,

################################################################################

转自http://www.cnblogs.com/zhuyp1015/archive/2012/07/20/2601698.html

################################################################################

1. delete 用于释放 new 分配的空间,free 有用释放 malloc 分配的空间

2. delete [] 用于释放 new [] 分配的空间
3. delete 释放空间的时候会调用 相应对象的析构函数
     顺便说一下new在分配空间的时候同时会调用对象的构造函数,对对象进行初始化,使用malloc则只是分配内存
4. 调用free 之前需要检查 需要释放的指针是否为空,使用delete 释放内存则不需要检查指针是否为NULL
5. free 和 delete 不能混用,也就是说new 分配的内存空间最好不要使用使用free 来释放,malloc 分配的空间也不要使用 delete来释放

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值