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

2019-08-12 17:33发布

在STM32中,一般来说,内存是CPU自动分配的,不需要我们自己去设置内存单元。但是,CPU如何判断该内存单元是否可用?换句话说,在我自己定义的内存单元里,释放的时候除了赋值为0,还有什么其他操作提示CPU这段内存可以使用?
然而,我相信不只是将该单元的值赋值为0的,因为有时候我们需要的值就是0,这就是我们有用的值。
原子哥,懂得话,还请解答一下内存的问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
taizonglai
1楼-- · 2019-08-12 21:55
 精彩回答 2  元偷偷看……
Sun_Fly
2楼-- · 2019-08-13 02:32
把内存当做一把刀,用的时候拿过来,不用的时候放回原处,以便其他人使用
liu_z-w
3楼-- · 2019-08-13 04:51
Sun_Fly 发表于 2017-10-20 17:16
把内存当做一把刀,用的时候拿过来,不用的时候放回原处,以便其他人使用

但是,使用的时候怎么改变它的状态?难道只是看是否有值?
liu_z-w
4楼-- · 2019-08-13 09:19
zuozhongkai 发表于 2017-10-20 16:40
内存不是CPU分配的,是编译器分配的,在你编译程序的时候编译器就给你把你代码中的各个内存分配好了,数组 ...

那么这么说吧,假如我定义了一个1个Byte的全局变量,也就是我开辟了1Byte的内存空间,对吧。那么如果,我想让这段内存空间释放掉,即这段空间可以被使用。通俗理解,可以认为是取消这个全局变量的定义吧?那这个需要怎么做到?
taizonglai
5楼-- · 2019-08-13 11:42
本帖最后由 zuozhongkai 于 2017-10-21 08:31 编辑
liu_z-w 发表于 2017-10-20 23:48
那么这么说吧,假如我定义了一个1个Byte的全局变量,也就是我开辟了1Byte的内存空间,对吧。那么如果,我 ...

没法释放!你的这个变量就会一直对应着这个内存空间,除非你用malloc()函数给这个变量申请的内存,那么你就可以用free()来释放。编译器定好的这些内存分配你是没法释放的
DongInker
6楼-- · 2019-08-13 15:31
 精彩回答 2  元偷偷看……

一周热门 更多>