内存管理例程中的一个疑惑

2019-07-25 11:18发布


void my_mem_init(u8 memx)  
{  
    mymemset(mallco_dev.memmap[memx], 0,memtblsize[memx]*2);    //疑惑此处memtblsize[memx]为什么要乘2
        mymemset(mallco_dev.membase[memx], 0,memsize[memx]);         
        mallco_dev.memrdy[memx]=1;                                                                 
}  

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-25 16:44
因为mallco_dev.memmap是u16类型
lucky邪神
2楼-- · 2019-07-25 17:50
本帖最后由 lucky邪神 于 2017-11-14 22:27 编辑
正点原子 发表于 2017-11-13 22:34
因为mallco_dev.memmap是u16类型

谢谢,当时考虑了这方面的,memmap是U16,可能最近事情太多,这个弯没有转过来。下班了晚上回去再好好想想
lucky邪神
3楼-- · 2019-07-25 17:54
根据void mymemset(void *s,u8 c,u32 count),
mymemset(mallco_dev.memmap[memx], 0,memtblsize[memx]*2),其中mallcodev.memmap[memx]是u16类型,0是u8类型,为了将内存全部清零,内存块的个数与内存管理表一一对应,所以memtblsize[memx]需要乘以2.

一周热门 更多>