Байт выровнен по нечетному адресу.Это нарушает теорию границы доступа? - PullRequest
0 голосов
/ 05 апреля 2011
struct X {
char a;
char b;
int c;
};

В приведенной выше структуре член b хранится по нечетному адресу. Я проверял это в среде linux / x86

Многие веб-страницы говорят о неспособности процессоров обращаться к нечетным адресам. Если это так, то между элементами a и b должен быть заполнен 1 байт, так что b сохраняется в четном адресе.

Чего мне не хватает?

1 Ответ

1 голос
/ 05 апреля 2011

Доступ к символу по нечетному адресу всегда в порядке.Тем не менее, int по нечетному адресу может вызвать проблемы.Тем не менее, компилятор автоматически добавит отступ между полями структуры, если это необходимо.Я предполагаю C / C ++ в качестве вашего языка.

...