記憶體分配和C編程

記憶體分配和C編程

我正在學習 C 語言,我在理解記憶體分配和記憶體位址方案時遇到問題。

  • 我有 2 個整數,第一個整數的位址是 22fd58,第二個整數的位址是 22fd60。這就是我陷入困境的關鍵點。一個整數的長度為 4 個位元組,因此如果第一個整數從 22fd58 開始,則第二個整數必須從 22fd5c 開始。如果一個位址包含一個位元組。

那我的邏輯漏洞在哪裡呢?而且我正在64位元系統上工作。

答案1

嘿yyy,它們是十六進制值! :-) 0x22fd58 和 0x22fd60 之間有 8 個位元組的差異! :-) 不是 2! :-)

從記憶體位址我可以看出,你可能會使用的是Windows。 64 位元 win 上的 Visual C 使用 8 位元組整數,因此一切都按其需要進行。

相關內容