发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
请问空闲链表块怎么连成一个链表的?
68 函数 指针 调试
分享
大家好,我在看内存管理任务这一章时,定位到OSMemCreate此函数,很不明白空闲链表块怎么连成一个链表的?
     p_link = (void **)p_addr;             //1.(void **)不是二级指针吗? 我跟着调试走的时候,发现p_link直接得到了p_addr的地址
     p_blk  = (CPU_INT08U *)p_addr;  //2.这里为何要强制转成(CPU_INT08U *)指向这个无符号字节型的指针?
     loops  = n_blks - 1u;
     for (i = 0u; i < loops; i++) {
        p_blk +=  blk_size;
       *p_link = (void  *)p_blk;           //3.这里也看不懂 p_blk,这里又把p_blk的地址强制转化成(void  *)类型的指针,而且调试时发现这句貌似不起作用
        p_link = (void **)(void *)p_blk;//4.这里也是一脸懵比,,收线强制转换成(void  *)类型的指针,然后又加上(void **) 是什么个意思?调试是就是把p_blk的地址赋值给p_link
}
没学好指针,看得一脸懵比啊,求解析。
0
2019-10-31 02:10:05   评论 分享淘帖 邀请回答

相关问题

1个回答

只有小组成员才能发言,加入小组>>

165个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

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