在 x86 系统上,一个内存位置可以保存 4 个字节 (32 / 8) 的数据,因此 64 位系统中的单个内存地址每个内存地址可以保存 8 个字节。在 GDB 中检查堆栈时,尽管情况似乎并非如此,例如:
0x7fff5fbffa20: 0x00007fff5fbffa48 0x0000000000000000
0x7fff5fbffa30: 0x00007fff5fbffa48 0x00007fff857917e1
如果我有这个权利,那么每个十六进制对 (48) 都是一个字节,因此第一个内存地址 0x7fff5fbffa20: 实际上保存了 16 个字节的数据,而不是 8 个。
这让我非常困惑并且已经有一段时间了,所以绝对非常感谢任何输入。