OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4559|回复: 10

内存管理的小问题

[复制链接]

111

主题

265

帖子

0

精华

高级会员

Rank: 4

积分
740
金钱
740
注册时间
2014-3-4
在线时间
6 小时
发表于 2014-8-23 10:45:07 | 显示全部楼层 |阅读模式
5金钱
//设置内存
//*s:内存首地址
//c :要设置的值
//count:需要设置的内存大小(字节为单位)
void mymemset(void *s,u8 c,u32 count) 

    u8 *xs = s; 
    while(count--)*xs++=c; 
}


这个函数,没有太懂,我是这样理解的,*s::内存首地址。这个好理解
c要设置的值,这个是不死要设置的项值??比如要设置连续10个内存块,就是标记内存管理表连续10个为10??程序不是这个意思啊??
count这个是不是要申请的内存大小呢(字节为单位)??

求指导

最佳答案

查看完整内容[请看2#楼]

这个函数主要功能就是对一块连续内存进行赋值。*s一般为内存首地址。count:需要设置的内存大小,并不一定是申请内存的大小,并且要小于等于申请内存大小。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12092
金钱
12092
注册时间
2013-3-8
在线时间
1285 小时
发表于 2014-8-23 10:45:08 | 显示全部楼层
这个函数主要功能就是对一块连续内存进行赋值。*s一般为内存首地址。count:需要设置的内存大小,并不一定是申请内存的大小,并且要小于等于申请内存大小。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-8-23 13:02:48 | 显示全部楼层
0 --> 100这么大(count)的内存空间,首地址为*s,往这个内存空间的每个单元都填充c这个数值;简化一下理解就是往*s这个内存空间填充count个c的数值
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

111

主题

265

帖子

0

精华

高级会员

Rank: 4

积分
740
金钱
740
注册时间
2014-3-4
在线时间
6 小时
 楼主| 发表于 2014-8-23 16:14:48 | 显示全部楼层
回复【2楼】augustedward:
---------------------------------
这个函数的作用是设置项值吗??
回复

使用道具 举报

111

主题

265

帖子

0

精华

高级会员

Rank: 4

积分
740
金钱
740
注册时间
2014-3-4
在线时间
6 小时
 楼主| 发表于 2014-8-23 16:15:04 | 显示全部楼层
回复【3楼】Badu_Space:
---------------------------------
这个函数的作用是设置项值吗??
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-8-23 17:20:15 | 显示全部楼层
是滴,用于给一块连续的内存写入一个值。
开往春天的手扶拖拉机
回复

使用道具 举报

111

主题

265

帖子

0

精华

高级会员

Rank: 4

积分
740
金钱
740
注册时间
2014-3-4
在线时间
6 小时
 楼主| 发表于 2014-8-23 17:47:25 | 显示全部楼层
回复【6楼】zuozhongkai:
---------------------------------
那么while(count--)*xs++=c;  
这一句是把c个内存块里的32个字节每个都写入c对吧??
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12092
金钱
12092
注册时间
2013-3-8
在线时间
1285 小时
发表于 2014-8-24 12:31:40 | 显示全部楼层
回复【7楼】傻子:
---------------------------------
是的,不过不是32个字节,而是COUNT个字节
回复

使用道具 举报

111

主题

265

帖子

0

精华

高级会员

Rank: 4

积分
740
金钱
740
注册时间
2014-3-4
在线时间
6 小时
 楼主| 发表于 2014-8-26 07:44:35 | 显示全部楼层
回复【8楼】augustedward:
---------------------------------
那么把每个字节都写入了c,那么这些内存不就都被c占用了吗,还怎么使用啊
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12092
金钱
12092
注册时间
2013-3-8
在线时间
1285 小时
发表于 2014-8-26 12:04:18 | 显示全部楼层
回复【9楼】傻子:
---------------------------------
初始化为C。怎么不能使用了?内存只要申请到了就可以用,里面的内容是可以修改的啊,你可以设置为c,可以设置为0x00,0xff等任意你想要的值啊。
回复

使用道具 举报

111

主题

265

帖子

0

精华

高级会员

Rank: 4

积分
740
金钱
740
注册时间
2014-3-4
在线时间
6 小时
 楼主| 发表于 2014-8-27 08:59:15 | 显示全部楼层
回复【10楼】augustedward:
---------------------------------
谢了,我再看看,有问题再问你
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-2 06:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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