C++里面内存回收和内存释放有伞没区别啊

yayexing 2011-10-28 10:18:40
rt
...全文
205 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yayexing 2011-11-01
  • 打赏
  • 举报
回复
谢谢各位了,明白了,结了。
a136973446aa 2011-11-01
  • 打赏
  • 举报
回复
释放之后那块地址还有值,指针指向的地址也是那块地址,改内存为垃圾内存,为了避免出现野指针所以指针应该指向新的对象,一般都指向NULL
yayexing 2011-10-31
  • 打赏
  • 举报
回复
谢谢楼上给位的回答,小弟还有个问题,就是回收之后那块内存里面还有值吗,释放之后那块内存有值吗,是不是下次要用的时候也就是重新分配之后赋NULL值那段内存里面的值才被清空吗。
yayexing 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 cao_julians 的回复:]

引用 10 楼 yayexing 的回复:
谢谢楼上给位的回答,小弟还有个问题,就是回收之后那块内存里面还有值吗,释放之后那块内存有值吗,是不是下次要用的时候也就是重新分配之后赋NULL值那段内存里面的值才被清空吗。

回收时不会对那块内存做清理工作,即那块内在中会有之前的"垃圾"值.
另外赋值NULL是对指向那块内存的指针变量进行的,使指针变量处于不可用状态,而不是对那块内存进行什么操……
[/Quote]

那释放呢,也不会对那块内存做清理工作吗。
cao_julians 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yayexing 的回复:]
谢谢楼上给位的回答,小弟还有个问题,就是回收之后那块内存里面还有值吗,释放之后那块内存有值吗,是不是下次要用的时候也就是重新分配之后赋NULL值那段内存里面的值才被清空吗。
[/Quote]
回收时不会对那块内存做清理工作,即那块内在中会有之前的"垃圾"值.
另外赋值NULL是对指向那块内存的指针变量进行的,使指针变量处于不可用状态,而不是对那块内存进行什么操作.
cao_julians 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 super_admi 的回复:]
貌似,回收是系统的事情,释放是自己的责任。
[/Quote]
++
这两个词汇的主语(即动作的执行者)不同
super_admi 2011-10-29
  • 打赏
  • 举报
回复
貌似,回收是系统的事情,释放是自己的责任。
valtti 2011-10-29
  • 打赏
  • 举报
回复
int*p=NULL,表示这个指针不指向任何对象,防止后面的程序因为错误使用P出问题
yayexing 2011-10-28
  • 打赏
  • 举报
回复
回收了还可再用,是不是那块内存被赋了NULL,被释放了还有脏数据吗。
yayexing 2011-10-28
  • 打赏
  • 举报
回复
能再详细一点吗。有点糊。
小木 2011-10-28
  • 打赏
  • 举报
回复
有释放和回收的区别,回收:可再用,释放:那段内存还可能有脏数据,不知道对不对
HFred 2011-10-28
  • 打赏
  • 举报
回复
回收呢,原来是自己的东西,一般指栈空间,临时变量内存的回收
释放呢,原来就不是自己的东西,一般指堆空间,new出来的东西
回收和释放都不是内存被赋NULL,回收和释放后内存都可以从新被试用,被从新是有前,其内容一般是不会变的,被赋NULL的只有指针,NULL实际代表的是一个特殊的内存地址,该内存是受保护的,不可读不可写。
我是这样理解的,呵呵
被窝式覆盖 2011-10-28
  • 打赏
  • 举报
回复
努力学习中
camelisi 2011-10-28
  • 打赏
  • 举报
回复
=NULL是防止你释放了又马上使用了,这个时候你不知道它具体的指向,就是野指针了

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧