有关内存释放与使用的问题

2019-08-12 17:33发布

在STM32中,一般来说,内存是CPU自动分配的,不需要我们自己去设置内存单元。但是,CPU如何判断该内存单元是否可用?换句话说,在我自己定义的内存单元里,释放的时候除了赋值为0,还有什么其他操作提示CPU这段内存可以使用?
然而,我相信不只是将该单元的值赋值为0的,因为有时候我们需要的值就是0,这就是我们有用的值。
原子哥,懂得话,还请解答一下内存的问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
liu_z-w
1楼-- · 2019-08-14 21:41
我好像理解了。内存分配,应该只是说可以手动分配一段内存,而且这段内存在定义了长度之后,就一直存在。其实,所谓的释放,只是相当于告诉别人,这段内存可以被作其他操作时候使用,但是前提是遵循分配内存的方法上进行。所以,事实上只要我定义了长度,这段内存就是一直在被占用的,就算释放了也是在占用的。而在使用int a这种方式定义时候,永远也不会用到之前被定义的那段可被管理的内存空间。这也就解释了,为什么在开辟了之后,就算释放了,编译的data是不会减小的原因了。
Sun_Fly
2楼-- · 2019-08-14 22:49
liu_z-w 发表于 2017-10-20 23:48
那么这么说吧,假如我定义了一个1个Byte的全局变量,也就是我开辟了1Byte的内存空间,对吧。那么如果,我 ...

理论上只有堆区的空间可以释放,并且释放了一段时间内是不可用的。

一周热门 更多>