在C语言进行编程中,为什么要释放旧内存?

 我来答
宗伟兆项颐
2019-10-18 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.2万
采纳率:35%
帮助的人:794万
展开全部
我们老师说的是C++
没有回收动态申请内存的机制。需要主动释放。JAVA等高级语言有这种机制。刚查了下貌似C++确实没有。
即是说C/C++
都需要主动释放动态申请的内存。
试着解释下为什么要主动释放动态申请的内存:
1.动态申请的内存,存储在堆中,编译器不会自己回收,回收的意义:通俗讲就是告诉编译器,这片内存可以使用。
如果不被回收,这片内存就永远都不会被重新利用。也就是内存泄露。
例如
int
*a=(int
*)malloc
(sizeof(int)*4);
2.现在只有a这个指针指向这片动态申请的内存,再没有别的路径可以找到这片内存空间了。如果在释放a所指向的内存空间之前就改变了a的指向,那么可知,这片内存,将不可能再被找到了。那么这片内存就不会被释放,也就是上面说到的内存泄露。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式