c++内存示范问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 20:27:26
请各位高手帮忙解答,万分感谢。
用VC编写c++程序a,手动申请了一片内存空间Sa,却忘记释放清除。
1,请问我a程序执行完后,不关闭VC的情况下Sa占据着内存吗? 关闭VC后呢?
2,假如我程序a执行过程中崩溃了(此时Sa已经申请并使用),Sa还占据着内存吗?
3,应该怎样证明上面2中情况下的Sa是否还存在?
4,如果Sa未释放,应该怎样可以解决以上情况?

如果有玩过魔兽(war craft)的话,希望顺便解释下,魔兽异常崩溃后,先前占用的内存释放没?怎样做到的?

希望得到大家帮忙,再谢。
那么内存泄漏(memory leak)在普通的个人小程序中其实也不是那么严重咯? 能说一点点么? Fixend兄。

大概了解一点了,多谢!Fixend兄。

只要a程序退出了,无论是正常结束还是崩溃,它的内存都会自动被回收,
自动回收资源这个是现代操作系统的基本功能之一,操作系统知道什么程序占用了哪块内存,只要这个进程一结束,它就自动运行相关的处理程序,把原来属于这个进程的内存统统回收。

另外,内存是a拥有的,和你的vc无关。

问题补充:
对,在一般的小程序里面影响是不大。
不过具体取决于是怎样泄漏,比如,如果你的魔兽每秒泄漏10K内存,那问题也不小,你总不能让用户每隔一会就退出然后再进游戏吧。

在服务器程序里面影响将非常大,服务器程序都是长期运行的,可能几年都不重启一次,总有一天会因为内存泄漏而耗尽机器的内存。