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

2019-08-12 17:33发布

在STM32中,一般来说,内存是CPU自动分配的,不需要我们自己去设置内存单元。但是,CPU如何判断该内存单元是否可用?换句话说,在我自己定义的内存单元里,释放的时候除了赋值为0,还有什么其他操作提示CPU这段内存可以使用?
然而,我相信不只是将该单元的值赋值为0的,因为有时候我们需要的值就是0,这就是我们有用的值。
原子哥,懂得话,还请解答一下内存的问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
liu_z-w
1楼-- · 2019-08-13 20:28
zuozhongkai 发表于 2017-10-21 08:29
没法释放!你的这个变量就会一直对应着这个内存空间,除非你用malloc()函数给这个变量申请的内存,那么你 ...

我其实就是想说malloc跟free这两个函数。这两个函数是自己定义的吧,即对于编译器或者CPU没有真正的针对内存分配与释放的代码。那么这两个自己定义的函数,怎么能做到对内存的释放与分配操作?我看了最底层的,好像只是对数组赋值为0.
liu_z-w
2楼-- · 2019-08-14 02:07
DongInker 发表于 2017-10-21 08:47
可以了解下动态内存申请及回收。

就是想知道,在没有针对内存的固定函数,如何认为做到内存的申请与回收的。
jermy_z
3楼-- · 2019-08-14 05:53
liu_z-w 发表于 2017-10-21 09:02
我其实就是想说malloc跟free这两个函数。这两个函数是自己定义的吧,即对于编译器或者CPU没有真正的针对 ...

malloc 和 free
给你讲简单一点,就是先向内存要了一大块地方。

然后由人自行去标记是不是被占用了

比如你想要一块地方,就去这一大块地方找找标记,是不是足够,如果足够,就把这地方占了,然后标记这个地方已经被占,否则malloc失败

当你不用了,就把这个地方标记为空闲,就是free
liu_z-w
4楼-- · 2019-08-14 10:11
jermy_z 发表于 2017-10-21 09:06
malloc 和 free
给你讲简单一点,就是先向内存要了一大块地方。

好吧。那这个标记怎么标?对内存怎么标记?
jermy_z
5楼-- · 2019-08-14 10:52
 精彩回答 2  元偷偷看……
liu_z-w
6楼-- · 2019-08-14 16:29
jermy_z 发表于 2017-10-21 10:49
你要是花点时间仔细看看malloc原理  

就不会这样只会问了  呵呵

虽然,你说的可能是对的。但是,其实我想表达的意思,你可能没明白,或者我没明白你想表达的意思。不过,还是谢谢了。

一周热门 更多>