У меня есть программа ac, которую я отлаживаю с помощью gdb.Это делается на Ubuntu x86, и программа c компилируется с помощью gcc.Я объявляю две переменные типа int одну за другой
int a = atoi (argv[1]);
int b = atoi (argv[2]);
Передаваемые им значения равны 2 и 4 соответственно.Теперь я ломаю после этих строк и отлаживаю.На основании приведенных ниже данных может показаться, что int b начинается с адреса 0xbffff048 и занимает 0xbffff048, 0xbffff049, 0xbffff04a, 0xbffff04b.И также имеет смысл, что int b начинается со следующего адреса 0xbffff04c.Но если я отображаю значения этих четырех адресов, то, что я получаю в шестнадцатеричном формате, не равно десятичному 4 (что является значением b, подтвержденным в приложении и напечатанным в отладке gdb).Что я здесь интерпретирую / делаю неправильно?
(gdb) display a
2: a = 2
(gdb) display b
3: b = 4
(gdb) display &a
4: &a = (int *) 0xbffff04c
(gdb) display &b
5: &b = (int *) 0xbffff048
(gdb) x 0xbffff048
0xbffff048: 0x00000004
(gdb) x 0xbffff049
0xbffff049: 0x02000000
(gdb) x 0xbffff04a
0xbffff04a: 0x00020000
(gdb) x 0xbffff04b
0xbffff04b: 0x00000200