内存管理设置内存函数疑惑

2019-07-21 04:17发布

[mw_shl_code=c,true]void my_mem_init(u8 memx) { mymemset(mallco_dev.memmap[memx], 0,memtblsize[memx]*2); //内存状态表清0 mymemset(mallco_dev.membase[memx], 0,memsize[memx]); mallco_dev.memrdy[memx]=1; } [/mw_shl_code] 请问第一个函数清0内存表,memtblsize[memx]*2 这里为什么要*2?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
lycreturn
1楼-- · 2019-07-21 08:49
是的

内存管理表   是u16型的
u16 mem1mapbase[MEM1_ALLOC_TABLE_SIZE];
而内存设置函数  是按字节设置的
void mymemset(void *s,u8 c,u32 count)  
{  
u8 *xs = s;  
while(count--)*xs++=c;  
}
ofourme
2楼-- · 2019-07-21 14:19
因为作者用2个字节的空间来标识分配空间的大小吧。所以分配的内存最大64k-1?具体得看代码怎么实现的。

一周热门 更多>