硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6876|回复: 6
收起左侧

[有问必答] 求教ucosII内存管理,释放内存,内存数据仍在怎么清零

[复制链接]

5

主题

10

回帖

25

积分

新手上路

积分
25
发表于 2015-3-20 12:23:18 | 显示全部楼层 |阅读模式
ucosii内存管理在释放内存后,内存的前四字节保留了内存指向的下一地址,但是后面字节的数据仍在,想请教ucos怎么清空内存,还是说保留前四字节的指针,其他的都可以清零?如果全部内存清掉,是否回应为破坏了链表导致下次申请不到了内存了?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-3-20 13:24:27 | 显示全部楼层
具体不记得了,ucos的内存申请和释放比较简单,申请后怎么使用都可以。
回复

使用道具 举报

5

主题

10

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2015-3-20 13:37:29 | 显示全部楼层
释放之后怎么处理?ucos的释放只是吧内存前面4字节改为下一内存块的地址指针,后面还有的数据依然在,如果再次申请此内存写入数据比上一次长度小,那么后面的数据还残留
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-3-20 14:01:59 | 显示全部楼层

回 君莫笑 的帖子

君莫笑:释放之后怎么处理?ucos的释放只是吧内存前面4字节改为下一内存块的地址指针,后面还有的数据依然在,如果再次申请此内存写入数据比上一次长度小,那么后面的数据还残留 (2015-03-20 13:37) 
释放后不用管,释放后这些数据还有用吗,不用管它。
回复

使用道具 举报

5

主题

10

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2015-3-20 16:52:01 | 显示全部楼层
释放之后,如果再次申请到这块内存,但是这时候内存里面已经有数据,万一你将写入数据长度小于原先内存使用长度,那现在的内存数据岂不是错误的一帧?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-3-20 17:04:14 | 显示全部楼层

回 君莫笑 的帖子

君莫笑:释放之后,如果再次申请到这块内存,但是这时候内存里面已经有数据,万一你将写入数据长度小于原先内存使用长度,那现在的内存数据岂不是错误的一帧? (2015-03-20 16:52) 
新申请的内存,如果怕出错可以先清空一下。这个就好比你建立了一个工程,声明了一个全局buf[100],为了方式编译器初始化混乱,给这个buf先初始化数值。

另外一般我们操作buf的时候是不是实际操作那个了(比如buf[0], buf[1], 等等)才去使用那个,后面的我们都还没有操作,会去读取他数值么,读取了也没有什么意义。
回复

使用道具 举报

5

主题

10

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2015-3-20 17:33:46 | 显示全部楼层
[s:151]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-12 18:31 , Processed in 0.305868 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表