Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
576 views
in Technique[技术] by (71.8m points)

malloc和new的内存 如果没有free或者delete 程序结束后会回收?

据说时候这样的。我也相信,但是,怎么确认这一点?

既然,退出程序会自动回收。那么,除非是那种线上服务器程序,需要长期运行,甚至一年不关机的都要运行的那种。

一般的程序,运行完就退出,你可以不用释放内存。最常见的是一些常用的linux命令行,单次执行,很快完成,不free内存一点没关系。

当然,这些程序代码量少,需要malloc的地方法也少,可能也就一两次,通常不会忘记释放。

而大程序,比如http服务器,确实可能需要长期运行的,这种大一点的程序,很多地方都需要分配内存,就很可能忘记释放 。

真要命,不需要释放时,我们都记得要释放;真正需要释放时,我们又会忘记,被搞的焦头烂额。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

理解没问题。

如果跑一次很短时间就结束,自然会释放。

但很多情况是作为服务器驻留内存运行,那就要及时释放了。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...