-1

Я изучаю язык C, и у меня есть проблема, чтобы понять распределение памяти и схему адресов памяти.

  • У меня есть 2 целых числа, у первого есть адрес 22fd58, а у второго 22fd60. И это тот момент, когда я застреваю. Одно целое число имеет длину 4 байта, поэтому, если первое целое число начинается с 22fd58, второе должно начинаться с 22fd5c. Если один адрес содержит один байт.

Так где же дыра в моей логике? И я работаю на 64-битной системе.

1 ответ1

0

Эй, они шестнадцатеричные значения! :-) Между 0x22fd58 и 0x22fd60 разница в 8 байтов! :-) Не 2! :-)

Из адресов памяти я вижу, что вы, вероятно, используете Windows. Visual C на 64-битном win использует 8 байтовых целых чисел, поэтому все идет как надо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .