如何找到堆栈中项目的内存位置?

时间:2014-05-13 13:19:55

标签: memory stack bits

在接受采访时,我被问到:

  

您将获得一个起始地址为0的堆栈。堆栈的值为1000,每个位置可以存储8个字节的数据。 42nd元素的内存位置是什么?

3 个答案:

答案 0 :(得分:2)

让我们看一些值并尝试找到一种模式。

0 -> 1000
1 -> 1008
2 -> 1016

从1000开始,每次上升8,所以

n -> 1000 + 8*n

42 -> 1000 + 8*42
42 -> 1336

答案 1 :(得分:1)

这很简单。

  • 元素[0] =内存[1000]
  • sizeof(元素)= 8

然后:

Element[42] = Memory[1000 + 8*42]

答案 2 :(得分:0)

@Time S。

声明"它长大了#34;不一定是真的。 它也可以长大。

所以你的第二个例子更正确。在这种情况下,N可以是负数。