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