Alocação de memória e programação C

Alocação de memória e programação C

Estou aprendendo a linguagem C e tenho problemas para entender a alocação de memória e o esquema de endereço de memória.

  • Eu tenho 2 números inteiros, o primeiro tem o endereço 22fd58 e o segundo 22fd60. E este é o ponto em que estou ficando preso. Um número inteiro tem 4 bytes de comprimento, portanto, se o primeiro número inteiro começar em 22fd58, o segundo deverá começar em 22fd5c. Se um endereço contém um byte.

Então, onde está o buraco na minha lógica? E estou trabalhando em um sistema de 64 bits.

Responder1

Ei, são valores hexadecimais! :-) Entre 0x22fd58 e 0x22fd60 há uma diferença de 8 bytes! :-) Não 2! :-)

Pelos endereços de memória, posso ver que você provavelmente está usando o Windows. O Visual C em uma vitória de 64 bits usa números inteiros de 8 bytes, portanto, tudo ocorre conforme necessário.

informação relacionada