删除链表的节点,关于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来释放
这里面讲解了链表的删除节点。
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来释放
相关文章推荐
- js闭包
- 白话Spring(基础篇)---依赖注入
- OA学习笔记-004-Spring2.5配置
- VS Code for .Net core 1.0 environment configuration
- Ubuntu Git安装与使用
- Ubuntu Git安装与使用
- 2016年CSDN博客排名第一名,何许人也
- web性能优化
- RequestContextListener有什么用
- maven配置问题
- Socket如何保证长连接
- hdu 2570 迷瘴
- 浙大PAT1064
- 结构体在内存中的存储方式
- 为什么心跳包(HeartBeat)是必须的?
- Android应用程序插件化研究之DexClassLoader
- GUI
- 【2015.9-2016.3】年终总结——Day Day Up
- Linux内核分析课程笔记(一)
- GNUPLOT画图工具