智能指针总结
来源:互联网 发布:淘宝网电动工具 编辑:程序博客网 时间:2024/05/23 13:06
解释一
智能指针用于内存管理,主要是用于对堆上面开辟的内存的管理,具体采用引用计数的机制进行。比如我们在栈上开辟了一块内存m1,并将其赋值给指针p1,那么现在m1这块内存就有一个对象在使用,引用计数为1。这时如果有另外一个指针p2也需要使用m1的内容,那么就将p2也指向m1。问题在于,如果p1使用完毕之后,使用delete语句告诉系统,这块内存我不用了,把它回收吧,那么这时p2还在指着m1的话,再次使用p2的时候就会出问题了。
然后就引入了引用计数的概念。所有的栈上的内存,在还没有被开辟的时候,该块内存的引用计数为0,在第一次用p1开辟的时候引用计数+1变成1,如果有其他指针也需要这块内存,比如一个潜copy操作,比如p2,那么这时候就有两个指针指向m1,引用计数变成2,当p1用完了,就用一个操作切断p1和m1的关系,m1的引用计数变成1。当p2也用完了,那么通过一个操作引用计数再次减去1,引用计数变成0。当智能指针这个对象发现它管理的内存引用计数变成0的时候,对m1做一个delete操作,使之释放
链接:http://blog.csdn.net/hackbuteer1/article/details/7561235
0 0
- 智能指针总结
- 智能指针总结
- boost - 智能指针总结
- 智能指针总结
- 智能指针总结
- C++智能指针总结
- Android 智能指针总结
- 智能指针总结
- 智能指针学习总结
- android 智能指针总结
- OSG 智能指针陷阱 总结
- 智能指针:Effective c++总结
- auto_ptr智能指针使用总结
- C++智能指针大总结
- 7种智能指针总结
- C++智能指针使用总结
- 智能指针的简单总结
- C++之智能指针总结
- Windows Server2008 开启多用户远程链接
- jquery的$.extend和$.fn.extend作用及区别
- SQL查询入门(上篇) 原理型
- 把自定义的muxer加入ffmpeg源码
- 【牛腩新闻发布系统】——表格边框显示问题
- 智能指针总结
- 考生心得:SAT阅读考试常见问题解答
- Eclipse全局搜索
- 【基础练习】【快速幂】codevs3500 快速幂入门题解
- git工程的readme的常用排版命令
- bzoj 2434 [Noi2011]阿狸的打字机 [AC自动机+树状数组]
- centos 系统安装KVM
- List,Set,Map用法以及区别
- 操作系统实验六——死锁问题实验