中级会员
 
- 积分
- 384
- 金钱
- 384
- 注册时间
- 2023-7-23
- 在线时间
- 89 小时
|
3金钱
本帖最后由 安打 于 2024-2-27 21:29 编辑
1,在malloc.h里定义结构体struct _m_mallco_dev
{
void (*init)(uint8_t); /* 初始化 */
uint16_t (*perused)(uint8_t); /* 内存使用率 */
uint8_t *membase[SRAMBANK]; /* 内存池 管理SRAMBANK个区域的内存 */
MT_TYPE *memmap[SRAMBANK]; /* 内存管理状态表 */
uint8_t memrdy[SRAMBANK]; /* 内存管理是否就绪 */
};
其中MT_TYPE没找到定义
2,mallco_dev.memmap中,明明在定义的结构体里是一维数组,但为什么有mallco_dev.memmap[memx][index + i] = 0 变成二维数组,为什么没有报错?
3,void my_mem_set(void *s, uint8_t c, uint32_t count)
{
uint8_t *xs = s;
while (count--)*xs++ = c;
}
之中,虽然void *s指定了位置,但是简单粗暴的令s的内存地址后面任意数位都赋值零会不会造成内存泄露,或者把本不应该赋值为零的内存赋值为零?
|
|