C++的垃圾回收
来源:互联网 发布:手机定时开关机软件 编辑:程序博客网 时间:2024/05/16 09:21
这个问题实在去哪儿网的面试的时候一个面试官问到的一个问题,当时真的是一脸懵逼,只听说过JAVA的垃圾回收机制,没听过关于C++的垃圾回收啊,所以下来之后自己又了解了一下。
首先,C++一定是可以进行垃圾回收的。我们可以通过扫描并且标记内存中所有可能被使用的内存块,然后将已经分配出去的内存块中的没有被标记的内存块回收回来。但是要怎样才能扫描出所有可能被使用的内存块?
首先,通过扫描内存的数据,能够识别出指向堆上动态分配出来内存的指针,如果有识别错误,也只能是把不是指针的数据当成指针,不会把指针当成非指针数据,也就是说只可能漏回收内存块,而不会把正在使用的内存块回收。其次,所有内存块被引用的根,只可能存在与全局变量和当前的栈内,而全局变量都是集中于bss段和data段中,所以只要扫描bss段,data段以及当前使用的栈空间就可以得到当前正在使用的所有动态内存。
关于C++需要学习的东西很多,所以加油吧骚年!
阅读全文
0 0
- C#_垃圾回收
- .net的垃圾回收
- 垃圾回收的算法
- 垃圾回收的算法
- 垃圾回收的条件
- AS3的垃圾回收
- AS3的垃圾回收
- AS3的垃圾回收
- JVM的垃圾回收
- AS3的垃圾回收
- Java的垃圾回收
- Java的垃圾回收
- Java的垃圾回收
- java的垃圾回收
- Java的垃圾回收
- JVM的垃圾回收
- erlang的垃圾回收
- JavaScript的垃圾回收
- NYOJ23 取石子(一)(巴什博奕入门)
- SP页面如何显示本地图片
- gensim doc2vec选译
- Java复用类(继承与组合)简要笔记
- 创建数据库表空间
- C++的垃圾回收
- AlertDialog全部弹出框(命名不规范,但易懂)
- 欢迎使用CSDN-markdown编辑器
- ccf炉石传说
- OLEDB的Excel的IMEX和HDR是什么意思
- Software Testing
- Java静态代码块、构造代码块、构造方法的执行顺序
- 使用fastjson解析技巧
- 提高Web端页面加载速度的6个方法