社区
嵌入开发(WinCE)
帖子详情
关于动态分配内存的疑问?
芝麻775
2015-03-18 03:19:56
很多资料里提到这个:
操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序...
问题:这个记录空闲内存地址的链表,当操作系统重启后,链表是不是就清空了呢?有没有办法能够掉电保存这个链表,操作系统重启后,对于之前已经分配过的空间不进行重新分配。(ps:对象是可掉电保存的外部sram)
...全文
190
9
打赏
收藏
关于动态分配内存的疑问?
很多资料里提到这个:操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序... 问题:这个记录空闲内存地址的链表,当操作系统重启后,链表是不是就清空了呢?有没有办法能够掉电保存这个链表,操作系统重启后,对于之前已经分配过的空间不进行重新分配。(ps:对象是可掉电保存的外部sram)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
worldy
2015-03-19
打赏
举报
回复
同时,更重要的是,你的程序运行状态使用的各个内存值,必须和保存时刻一致,否则程序运行可能就会出现混乱
worldy
2015-03-19
打赏
举报
回复
单纯保留内存管理数据是无用的,如果这样,整个内存都需要保存,否则没有意义
fly 100%
2015-03-19
打赏
举报
回复
因为重建速率会远大于存储区load速度
fly 100%
2015-03-19
打赏
举报
回复
非易失存储器都可以存放 不过真是没必要的
zhxianbin
2015-03-18
打赏
举报
回复
RAM 掉电就不能保存,保存下来有什么用呢
别以为你站在珠峰就能看到全世界
2015-03-18
打赏
举报
回复
可以实现,但是不是系统干的事情了,自己 写内存管理,并记录到sram。
91program
2015-03-18
打赏
举报
回复
这样的功能要求,已经超出了系统的范围。 因为系统不知道自己启动后,你的应用是否运行,如果不运行保留以前的内存分配有什么作用?且可能导致内存不足的情况出现。 如果一定想记录,还是自己的程序去实现吧。
curious_cat
2015-03-18
打赏
举报
回复
想复杂了; 自己写程序维护一个队列/链表,把描述该队列/链表数据结构的变量都保存在该外部RAM中即可。
C语言既然可以自动为变量分配内存,为什么还要用
动态分配内存
呢?
已剪辑自: https://mp.weixin.qq.com/s/NRyM5KAm_jrBImmkA2WYSA如果想要弄清楚这些问题,我们首先就要了解静态内存和动态内存有什么区别,只有了解了他们两个的区别我们才能弄懂(理解)为什么需要
动态分配内存
!今天的文章会用到以下知识点,大家可以作为了解内容去学习:静态内存、动态内存、堆、栈、全局变量、指针等。既然要学习内存的相关知识,那我们就先从计算机的内存开始本篇的讲解吧!在计算机内存一共可以分为五个区域,其中有个区域是用来存储代码的,我们就不再进行讨论了。
C语言既然可以自动为变量分配内存,为什么还要用
动态分配内存
呢?_类型已经定了为什么还要
动态分配内存
(1)
这些仓库和你的超市是分离的,如果你发现你进了一些商品,这些商品短时间内也不会被完全卖出去,那你就可以把这些货物放到你的仓库里,而你只需要记住你仓库的地址即可。知道了
动态分配内存
的好处后我们就可以更好的理解我们为什么要使用
动态分配内存
以及何时应该使用动态分配了,所以如果你进了几包方便面(建了个很小的对象)那你就没必要把方便面放到仓库了,直接放到超市货架上就可以了。由于堆区内存也是有限的,不能无限制地分配下去,所以秉持着尽量节省资源,我们应该在分配的内存区域不用时,及时释放它,以便其他的变量或程序使用。
C语言既然可以自动为变量分配内存,为什么还要用
动态分配内存
呢?_动态申请内存的好处(1)
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!” />你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!
动态内存分配和释放
动态内存分配 动态内存分配最常见的就是用来分配一个某类型的数组。我们可以使用数组来处理大量的数据,但实际上很多情况下我们并不知道此数组会有多少个元素,所以在定义数组时到底定义多大的数组就要仔细考虑下了。 比如,我们要对输入的若干个数进行分析,得出所有的正数存到一个数组里以备他用,这个正数数组应该定义多大呢?如果大了可能会造成内存的浪费,如果小了可能会出现数组越界的情况。 这种情况下比较理想的是判断全部数据里有多少个正数就定义多大的数组,既不浪费内存也不会出现数组越界的问题,这就需要用到动态内存分配了。 动态
C语言既然可以自动为变量分配内存,为什么还要用
动态分配内存
呢?_类型已经定了为什么还要
动态分配内存
这些仓库和你的超市是分离的,如果你发现你进了一些商品,这些商品短时间内也不会被完全卖出去,那你就可以把这些货物放到你的仓库里,而你只需要记住你仓库的地址即可。我这里先说一下我的理解,我对这个问题的答案总结出以下几点,当然这绝不是全部的原因,鄙人也是能力有限,只能理解到这种程度,更多的理解欢迎大家在评论区进行讨论!本质上讲的是以前所有的内存分配的缺陷。由于堆区内存也是有限的,不能无限制地分配下去,所以秉持着尽量节省资源,我们应该在分配的内存区域不用时,及时释放它,以便其他的变量或程序使用。
嵌入开发(WinCE)
19,502
社区成员
41,568
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章