169 похожих чатов

Подскажите, почему в правом коде с1 дополняется до 8байт, а

не до 4?

9 ответов

8 просмотров

pahole ./a.out

https://en.m.wikipedia.org/wiki/Data_structure_alignment

Потому что указатель 8 байт

Sergey- Автор вопроса
Vlad Doc
Потому что указатель 8 байт

а почему тогда слева не по 8 идет выравнивание?

Sergey- Автор вопроса
Vlad Doc
16 это не по 8?

на каждое поле

Sergey
на каждое поле

int* — 8 char — 4 из-за инта дальше int — 4

Sergey- Автор вопроса
Vlad Doc
int* — 8 char — 4 из-за инта дальше int — 4

вот здесь не срабатывает "4 из-за инта дальше"

Sergey
screenshot вот здесь не срабатывает "4 из-за инта дальше"

Потому что он выразился по-дебильному. У тебя каждое поле структуры выравнивается по собственному размеру, т.е. 32 разрядный инт должен быть на 4-байтной границе и если вначале идёт поле с типом чар, то до ближайшей 4-байтной границе ещё 3 байта, поэтому поле с типом инт будет иметь оффсет 4 относительно начала поля чар, а не 1, как могло бы показаться на первый взгляд.

Похожие вопросы

Обсуждают сегодня

анрей С какой целью зашёл?
КТ315
35
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
13
Я не очень много работал с потоками, тут возник вопрос - если будет одновременный доступ к памяти из двух разных потоков, это само по себе приведет к ошибке?
The Bird of Hermes
25
а вот интересный вопрос появляется: допустим у нас есть приложение с системой модулей. Будет ли считаться система модуль+прога ассемблерной программой если: а) Прога на Си, м...
Mixail Frolov
29
Падает сервис в одной из 100500 инсталляций. По крашрепорту - на System.InitUnits, пересмотрел секции инициализации - ничего криминального не нашел. Модулей - сотни... как бы ...
Михаил Усков
9
решил посмотреть, как работает статическая локальная переменная. Вопрос: при запуске программы, мы загружаем ее в оперативную память, и модифицируя значение в coeff.0, мы моди...
Павλо 🇺🇦
11
Qq, возможно сталкивался кто Повесил на бота обработку апдейтов типа chat_member, при этом апдейты доходят только когда с ботом что-то делают, на саб/ансаб юзеров ему насрать...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
13
Может кто встречал такое? Один набор данных, но в одном столбце кодировка нормальная, а в другом ироглифы. Как такое может быть?
Alexander
23
Как это? А скрин ошибки хоть есть?
Александр (Rouse_) Багель
14
всем привет. может кто-нибудь сталкивался с такой проблемой? отсылали базу в odoo upgrade service с 12 на 17 версию, в базе которую они прислали в ответ заметили вот такие стр...
Pavel
6
Карта сайта