社区
C++ 语言
帖子详情
程序退出后,new的内存会释放吗
十毛
2013-01-12 12:39:47
如题,程序中有new的几个对象,不知道在程序退出后操作系统是否会释放该部分内存。Google了一下,有的人说哪怕程序退出,该内存也不释放,但是我很怀疑。难道操作系统没有能力知道哪些内存是由哪个程序分配的吗? 请求权威一点的答案
...全文
1579
13
打赏
收藏
程序退出后,new的内存会释放吗
如题,程序中有new的几个对象,不知道在程序退出后操作系统是否会释放该部分内存。Google了一下,有的人说哪怕程序退出,该内存也不释放,但是我很怀疑。难道操作系统没有能力知道哪些内存是由哪个程序分配的吗? 请求权威一点的答案
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
明湖居士2018
2013-01-12
打赏
举报
回复
OS会帮你回收,但是你自己最好记得用delete释放,这是你该干的事情。
raymefun
2013-01-12
打赏
举报
回复
这个没有疑问啊
smilenot
2013-01-12
打赏
举报
回复
会的 进程都销毁了,就什么都没有了
laqhelen
2013-01-12
打赏
举报
回复
得你自己用delete释放。
RobertC
2013-01-12
打赏
举报
回复
楼上说的都对 哈哈
SKATE11
2013-01-12
打赏
举报
回复
程序运行中不会释放 程序退出后就释放了 楼主可以自己写个死循环把内存耗干 然后退出就知道了
bljswpu
2013-01-12
打赏
举报
回复
必须的会呀 程序都结束了 就不占用内存了
crazy_samba
2013-01-12
打赏
举报
回复
会释放,因为是在进程地址空间内
Joseph_1118
2013-01-12
打赏
举报
回复
会! 但是如果你的程序是一个常驻内存的,随着你程序的运行可能内存就吃紧了
niushitang
2013-01-12
打赏
举报
回复
肯定能释放,但是要养成delete的好习惯
lin5161678
2013-01-12
打赏
举报
回复
1
会释放 不用怀疑 但是 你有new操作 自己就加delete操作 这个是程序员的责任 不用推给编译器
十毛
2013-01-12
打赏
举报
回复
谢谢,因为是一个Singleton,所以我不准备手工delete它。想着反正只有一个对象,应该没什么问题吧
蒋晟
2013-01-12
打赏
举报
回复
2
房子要爆破拆迁了,不用扫地。当然如果你内存里有没保存的缓存数据要写出去。
linux 用户进程结束后 malloc申请的
内存
会
自动
释放
吗,进程
退出
后malloc的
内存
是否
会
被
释放
??...
linux下使用exit()函数
退出
进程,那么这个进程中使用malloc申请的
内存
会
被系统回收吗?,如果使用kill函数呢?|当一个进程
退出
后,不管是正常
退出
或者是异常
退出
,操作系统都
会
释放
这个进程的资源。包括这个进程分配的
内存
,打开的文件等等。用malloc分配的
内存
属于这个进程使用的
内存
,在进程
退出
后,当然
会
释放
。操作系统如果连这个都做不到,那它还能做什么?4楼引用的那段英文:Memoryo...
动态分配
内存
,不
释放
,
程序
退出
后
会
被系统回收吗
每一个进程都运行在一个独立的4GB“地址空间”当中 这个4G只是逻辑上的,物理
内存
不可能有这么多, 这个“地址空间”中,内核占掉了高位的2G, 用户就用低位的2G 了,用malloc 来管理 在用户
程序
的堆中分配一个指定大小的空间,并告诉系统的
内存
管理模块:“我要使用这块空间!” 那么,系统的
内存
管理模块究竟做了些什么呢? 熟悉Intel 80x86编程的人应该容易理解,它其实只做一
关于Android
程序
退出
后
内存
释放
的问题
做Android项目的时候发现一个问题:当应用
程序
退出
了,点击"设置"查看应用
程序
,界面显示着可以点击"强制关闭". 我认为造成这样的原因是还有开启的activity没有被destroy,然后做调试,之后发现开启的activity应该是全部都被 destroy了.但是结果还是显示可以点击"强制关闭". 由于这个问题我发现了一个更加严重的问题,那就是,在我应用
程序
退出
之后,系统并没有
释放
掉我应
函数内部
new
申请的
内存
需要手动
释放
内存
泄漏是指
程序
在运行过程中不断分配
内存
而不
释放
,最终导致系统的可用
内存
不断减少,直至耗尽。函数结束时,函数内部的局部变量
会
被销毁,但如果这些局部变量指向动态分配的
内存
,并没有被
释放
,那么
内存
就
会
泄漏。在实际应用中,如果
内存
泄漏问题严重,可能
会
导致
程序
运行速度变慢,资源消耗增加,甚至使得系统无法正常工作。C++中的
内存
管理是由
程序
员负责的,如果在函数内部使用。分配的
内存
,也需要在适当的时候手动
释放
,否则就
会
导致
内存
泄漏问题。这个不是在函数内部
new
的吗,函数结束后不
会
自动
释放
吗。
关于
程序
退出
后,是否还存在
内存
泄漏的现象。
学习linux内核之前一直对“
内存
泄漏”有这么一个认识,就是
程序
申请了一段
内存
后,即使
程序
退出
了,那段
内存
也无法访问了。 后面学习linux内核中的进程管理部分后,觉得这个想法存在问题。当一个进程执行完毕的时候,内核是要对这个进程申请的
内存
进行
释放
,因为这是用户地址空间的虚拟
内存
,所以无论这个进程是否delete,操作系统都是要进行回收的。 为了验证我的想法,进行了如下测...
C++ 语言
65,170
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章