我把这个贴在这里作为最后的手段。我完全被卡住了,不知道该去哪里。带着这个问题,我在寻找方向而不是答案。
我有一个家庭作业,实际上似乎是一个很常见的作业。问题在第 11 页。这不是我的任务,但它是我在 Google 上找到的与我非常相似的任务。
我的导师给出了我们需要查看的相关信息是标题位的指导。
假设我们正在执行以下操作:free(0x400b010)
0x400b010
包含0x400b601c
.
如果我将此十六进制分解为二进制 - 特别是最后一个双字,我会得到以下信息
0x1c = 0001 1100
整个事情:
0x400b601c = 0100 0000 0000 1011 0110 0000 0001 1100
据我所知,1c
这表明该内存已经空闲。因为最后一位是 0。在这种情况下,free 的行为将是未定义的。
但我的火车虽然准确吗?我什至把这个带向了正确的方向吗?