【发布时间】:2020-10-27 01:38:15
【问题描述】:
看了内存管理的代码,看不懂下面这个函数的意思,请问这个函数是怎么工作的?
// Get the reference of next block's address in current block.
static void*& GetNextBlock(void* p_block)
{
return *(reinterpret_cast<void**>(p_block));
}
根据对代码的注释,该函数返回p_block的下一个块的地址,但我认为该函数返回p_block的地址。
【问题讨论】:
-
试着把它分解成更小的块。你知道
reinterpret_cast<void **>()做什么吗?如果没有,您可以在 C++ 教科书中轻松找到答案。既然您知道它的作用,请拿一张纸并写下解释。现在,您知道一元*运算符的作用吗?好的,同样的方法。现在,把两个和两个放在一起,你就有答案了! -
看起来
p_block包含其下一个块的地址。