您的位置:首页 > 其它

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

2016-02-28 17:27 323 查看
最近温习链表的知识,看到《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来释放
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: