Memory 这个地址怎么能保存这么多数据?

Memory 这个地址怎么能保存这么多数据?,memory,gdb,Memory,Gdb,我不确定这是不是一个非常可怕的误会,但我在检查记忆方面遇到了很多麻烦。以下是gdb使用x/8w检查的结果 0xbffff7a0: 0xb7f9f729 0xb7fd6ff4 0xbffff7d8 0x08048529 0xbffff7b0: 0xb7fd6ff4 0xbffff870 0xbffff7d8 0x00000000 所以我假设0xb7f9f729位于0xbfff7a0,然后0xb7fd6ff4位于0xbfff7a4,等等。您能解释一下它是如何按字节工作的吗?是从第一个内存部分到下一

我不确定这是不是一个非常可怕的误会,但我在检查记忆方面遇到了很多麻烦。以下是gdb使用
x/8w
检查的结果

0xbffff7a0: 0xb7f9f729 0xb7fd6ff4 0xbffff7d8 0x08048529
0xbffff7b0: 0xb7fd6ff4 0xbffff870 0xbffff7d8 0x00000000
所以我假设
0xb7f9f729
位于
0xbfff7a0
,然后
0xb7fd6ff4
位于
0xbfff7a4
,等等。您能解释一下它是如何按字节工作的吗?是从第一个内存部分到下一个内存部分的16个字节,每4个字节保存自己的字吗


我很难理解这个记忆概念,有谁知道一个好的资源可以让学习更容易吗?

对这两个问题都是肯定的

gdb(1)
将您的
x/8w
命令中的
w
修饰符理解为“四字节字”,因此您将以四个字节为一组打印32个字节
gdb(1)
只需将它们以短线排列,并带有偏移量以便于阅读

我应该提到,打印的准确值实际上取决于

使用
x/32
可以获得类似但可能更容易理解的布局

都在里面