Вычитание непересекающихся адресов указателей, определенных в C? В С++?
Вот пример:
void* p = malloc(64);
int* one = (int*)((char*)p);
int* two = (int*)((char*)p + 7);
printf("%x %x %d %d\n", one, two, sizeof(int), two - one);
Я получаю вывод 8a94008 8a9400f 4 1
, поэтому кажется, что он разделяет и обрезает остаток. Определено ли поведение?