作者d630200x (DOGE)
看板C_and_CPP
标题[问题] free()和delete的问题
时间Fri Sep 13 16:02:06 2019
在动态配置记忆体时,C用malloc(),C++用new
而不管是在网路还是书籍上,都会强调必须在生命周期结束後将记忆体归还回去
那麽如果是在程式crash或是我们手动将程式结束掉的情况下
这些动态配置的记忆体是os回收掉还是C&C++做回收?
-----
Sent from JPTT on my Asus ASUS_I01WD.
--
标题 [洽特] 台湾鸡翅国际股份有限公司??
这麽奇特的名字是怎麽来的呢? 有人有八卦吗????
1F:推 sweetmiki: 给你的鸡鸡一双翅膀 跨国界尻枪09/07 19:42
2F:推 qqq3892005: 鸡翅→G翅→G WING→GG WIN→GG double IN→GGININ 09/07 19:48
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.12.44.76 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1568361730.A.0EF.html
3F:推 b0920075: os 09/13 17:45
4F:推 Schottky: Crash 由 OS 收屍,手动结束有可能程式自己会处理後事 09/13 20:17
5F:→ Schottky: 当然程式如果没有处理/来不及处理还是 OS 会收拾残局 09/13 20:17
6F:→ Schottky: 具体的说就是用 atexit() 设定「办後事」的 function 09/13 20:22
7F:→ Schottky: GUI 程式也可以设定按 X 或被 OS 通知结束时的行为 09/13 20:23
8F:→ Schottky: 那有没有不会收屍的OS?有啊,程式crach就整台电脑当机 09/13 20:28
9F:→ EricTCartman: 不当机还是会有OS不帮忙收拾的状况 有些OS就是没做 09/13 20:34
10F:推 stupid0319: windows在O3层虚拟记忆体定址的话,OS直接就收掉 09/13 22:40
11F:→ stupid0319: 如果是写驱动程式的话,就要很小心了 09/13 22:41
12F:推 ando5566: 回答问题:由程式回收 09/14 12:23
13F:推 cphe: OS会收,通常会考虑leak的状况是,很多程式其实是一直在背 09/15 18:51
14F:→ cphe: 景跑不会结束,如果不free就会一直吃memory ,直到被termina 09/15 18:51
15F:→ cphe: te 09/15 18:51
16F:推 arshuan: 你一般user space的程式在执行就是OS allocate 一块记忆 11/17 14:18
17F:→ arshuan: 体给你 你不管怎麽用不管静态或动态配置都不可能超出那块 11/17 14:18
18F:→ arshuan: , 程式关闭後OS自然把整块记忆体回收 所以不用担心会有 11/17 14:18
19F:→ arshuan: 任何memory leak影响到整个系统 11/17 14:18
20F:推 arshuan: 我上面讲的可能不太对 应该说你程式跟OS要过多少记忆体OS 11/17 17:03
21F:→ arshuan: 都有纪录 所以程式关闭时OS一定会把所有配给该程式的记忆 11/17 17:03
22F:→ arshuan: 体收回 但是如果你程式没关闭又一直要记忆体 OS当然不会 11/17 17:03
23F:→ arshuan: 去回收 才会导致所谓的memory leak 11/17 17:03