new和delete
来源:互联网 发布:centos7 yum安装wine 编辑:程序博客网 时间:2024/05/18 19:43
delete 删除的是动态内存, 动态内存在操作系统中称做堆,它是操作系统的堆管理器来处理,堆有堆块组成分为空闲的,使用的 ,new就是在堆空间中申请一个空间,让p指向这个生成的空间,也就是告诉堆这个地方我占了,其它内存变动的不能改这个区域。当你new一片堆块的时候,它被标记为使用的 ,当你delete它的时候,它实际上就是释放这个地方,把那片堆块重新标记为空闲的,告诉系统这个地方我不要了,你可以给别人,而不是删除内存空间, 虽然你还能使用它,但是如果程序中还有其它new运算,可能会把delete的那片堆块重新分配出去,因为delete后它是空闲的……
在delete之后重设指针的值
执行语句
delete p;后,p变成没有定义。
在很多机器上,尽管p没有定义,蛋仍然存放了它之前所指向对象的地址,然而p所指向的内存已经已经被释放,因此p不再有效。
删除指针后,该指针变成悬垂指针。
悬垂指针 :指向曾经存放对象的内存,蛋该对象已经不再存在了。
悬垂指针往往导致程序的错误,而且很难检测出来
注意: 一旦删除了指针所指向的对象,立即将指针置0,这样就非常清楚的表明指针不再指向任何对象。
- new, delete 和 new[] delete[]
- new、delete和new[]、delete[]
- new和new[] 和delete 和delete[]
- 关于new和delete,new[] 和delete[]
- 关于new和delete,new[] 和delete[]
- 关于new和delete,new[] 和delete[]
- new和delete && new[] 和delete[]
- new/delete operator和operator new/delete
- C++ 中的 new/delete 和 new[]/delete[]
- C++中的new/delete和new[]/delete[]
- c++ new new[]和 delete delete[] 问题
- 模拟实现new、delete和new[] 、delete[]
- new/delete 和 new[]/delete[] 配套使用
- C++ 中的 new/delete 和 new[]/delete[]
- C++中的new delete和new[] delete []
- C++中的new/delete和new[]/delete[]
- C++ 中的 new/delete 和 new[]/delete[]
- new与delete和new[ ]与delete[ ]
- 最核心4大NFC技术规范详解
- 64位win7下visual studio 10使用libcurl静态库的问题
- dede 留言簿 多个
- 文件下载,文件名乱码,XLS设置
- java将多张图片合成一张tif图片
- new和delete
- JDK中的URLConnection参数详解
- XA分布式事务处理
- C#笔记本
- C#中关于托管资源和非托管资源
- oracle中merge用法
- ios开发中测试设备不在身边,如何进行测试
- 一个前辈写的网络协议学习方法
- 黑马程序员--基础加强(6)--- 类加载器