当前位置: 技术问答>linux和unix
Unix源代码问题1:关于 malloc
来源: 互联网 发布时间:2015-12-23
本文导语: 最近开始翻开大学时代的书籍,重新回顾OS 看到malloc函数中有这么一段: for (bp = mp; bp->m_size; bp++) { if (bp->m_size>=size){ a = bp->m_addr; bp->m_addr =+ size; if ((bp->m_size =- size)...
最近开始翻开大学时代的书籍,重新回顾OS
看到malloc函数中有这么一段:
for (bp = mp; bp->m_size; bp++) {
if (bp->m_size>=size){
a = bp->m_addr;
bp->m_addr =+ size;
if ((bp->m_size =- size) == 0){
do {
bp++;
(bp-1)->m_addr = bp->m_addr;
} while ((bp-1)->m_size = bp->m_size);
return (a);
}
}
}
Question:
在while循环中,什么时候会跳出这个循环呢?也许我对C的理解还差一些火候,所以请大家不吝赐教,谢谢啦。
看到malloc函数中有这么一段:
for (bp = mp; bp->m_size; bp++) {
if (bp->m_size>=size){
a = bp->m_addr;
bp->m_addr =+ size;
if ((bp->m_size =- size) == 0){
do {
bp++;
(bp-1)->m_addr = bp->m_addr;
} while ((bp-1)->m_size = bp->m_size);
return (a);
}
}
}
Question:
在while循环中,什么时候会跳出这个循环呢?也许我对C的理解还差一些火候,所以请大家不吝赐教,谢谢啦。
|
分就送给我吧
|
哈哈,但愿还可以凑一份啊