这个地址怎么能容纳这么多数据?

How Can This Address Hold So Much Data?

不确定这是否是一个明显可怕的误解,但我在检查内存时遇到了很多麻烦。以下是来自 gdb 的检查 x/8w.

0xbffff7a0: 0xb7f9f729 0xb7fd6ff4 0xbffff7d8 0x08048529
0xbffff7b0: 0xb7fd6ff4 0xbffff870 0xbffff7d8 0x00000000

所以我假设 0xb7f9f7290xbffff7a0,然后 0xb7fd6ff40xbffff7a4,等等。你能解释一下这是如何逐字节工作的吗?是从第一个内存部分到下一个内存部分的 16 个字节,每 4 个字节都有自己的字吗?

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

两个问题都是肯定的。

gdb(1) 将您的 x/8w 命令中的 w 修饰符理解为 "four byte words",因此您以四个为一组打印 32 个字节。 gdb(1) 只是将它们排成短行并带有偏移以便于阅读。

我应该提一下,打印的确切值实际上取决于 platform endianness

你会得到与 x/32 相似但可能更容易理解的布局。

都在the fine manual.