I declared an integer (32bits) and a char (8), and I know that a computer address is 1 byte at a time, so why is the difference between those two addresses is 16 and not let's say 40? if each memory address is 8 bits and the size of an integer is 32, then the range is expected to be greater than 16, no?
int main(void)
{
char a = 'g';
int b = 5;
printf("%p %p\n", &a, &b);
return 0;
}
(gdb) p 0x7fffadfcc2c0 (a) - 0x7fffadfcc2b0 (b)
$1 = 16