什么是内存释放

类似于数据收回,系统回收的解释就不用了,我也会说,想知道内存释放到底发生了什么,是内存有标记可用/可覆盖了?或是内存块01高低电位随机打乱了?又或是全部置0?再或是什么都... 类似于数据收回,系统回收的解释就不用了,我也会说,想知道内存释放到底发生了什么,是内存有标记可用/可覆盖了?或是内存块01高低电位随机打乱了?又或是全部置0?再或是什么都没做,只是可复写数据?
类似于delete到底做了什么。
展开
 我来答
金色潜鸟
2013-11-28 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5619万
展开全部
涉及到动态分配数组时用。
程序运行中,根据需要,用malloc,realloc,new 等函数,向操作系统请求,临时分配的内存,当不再需要时,需要“释放”。也就是把这部分空间,归还给操作系统,另派它用。
因为计算机资源是有限的,如果你不归还,操作系统不能用来另作它用,就等于“占着茅坑不拉屎”,降低了整个系统的有效性能。所以 要用 delete, free 释放 -- 归还。
一般c/c++程序,不释放,问题不大,视窗程序问题就大了,视窗程序是消息循环和处理程序,在循环里,一次又一次作动态分配,且忘了释放,计算机动态内存区就会被用完,造成死机--必须关电源才能复活。
cdyzxy
2013-11-28 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3666万
展开全部
-在计算机的存储器中,拿RAM来说,是按照块进行管理的,在使用某段内存之前需要查看该段是否被别的程序占用了,如果空闲才可以使用,这可以避免数据组织上的混乱。
-new语句就是在内存中开设了一块空间,标记为自己使用,而delete就是释放它,归还系统。
-如果不delete那么系统就会一直认为你在使用中,不会再利用这块内存了,如果你的程序中(比如大型游戏)有地方疏漏了,经常忘了将申请的临时内存释放,那么这就叫内存泄露,运行次数多了、时间长了,计算机内存都有可能会被占光的。这就是有的游戏编得不好,运行久了就死机,重启就没事了的原因之一。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妫原uv
2013-11-28 · TA获得超过285个赞
知道小有建树答主
回答量:395
采纳率:0%
帮助的人:143万
展开全部
类似于你做了一块蛋糕吃剩下了好多,放在冰箱里,坏了不扔就占地方。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式