pahole ./a.out
https://en.m.wikipedia.org/wiki/Data_structure_alignment
Потому что указатель 8 байт
а почему тогда слева не по 8 идет выравнивание?
16 это не по 8?
на каждое поле
int* — 8 char — 4 из-за инта дальше int — 4
Потому что он выразился по-дебильному. У тебя каждое поле структуры выравнивается по собственному размеру, т.е. 32 разрядный инт должен быть на 4-байтной границе и если вначале идёт поле с типом чар, то до ближайшей 4-байтной границе ещё 3 байта, поэтому поле с типом инт будет иметь оффсет 4 относительно начала поля чар, а не 1, как могло бы показаться на первый взгляд.
Обсуждают сегодня