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

Https://Godbolt.Org/Z/W14x6cKPW Делать такой каст указателей ведь не ub?

14 ответов

7 просмотров

Жесть... Я вообще не понимаю как это работает. Ты даешь адрес поля в структуре, в которой есть еще одно поле. Этот адрес кастится к указателю на эту структуру. Но ведь адрес структуры не равен адресу его второго поля...

за версту несёт уб

Kelbon
за версту несёт уб

Но это не точно В обратную сторону можно. А здесь целесообразно полистать Стандарт

У меня другой вопрос: почему возникает необходимость писать так, когда можно писать чисто. Какая практическая задача решается?

Egor-Kulebyakin Автор вопроса
Anatoly Shirokov
У меня другой вопрос: почему возникает необходимос...

У меня есть вектор структур, содержащих T* и какие-то свойства, нужные только мне. Есть метод create(), который возвращает T& и есть метод destroy(T&), который должен менять свойства и что-то делать с указателем. Каким еще способом можно сделать этот destroy так, чтобы не нужно было искать структуру, где хранится нужный мне объект типа T*, среди всех?

Ilya Zviagin
Это оно и есть.... Знак UB!

Ссылки будут?) Любопытно же))

Ilya Zviagin
На что ссылки?

На пункт Стандарта)

Egor Kulebyakin
У меня есть вектор структур, содержащих T* и какие...

Почему не передать структуру в destroy? Там и указатель доступен и флаги

Egor-Kulebyakin Автор вопроса
Anatoly Shirokov
Почему не передать структуру в destroy? Там и указ...

потому что у пользователя есть только сам объект, который я возвращаю из create()

Egor Kulebyakin
потому что у пользователя есть только сам объект, ...

Тогда, зная смещение указателя в структуре, можно перейти к указателю на саму структуру

Egor-Kulebyakin Автор вопроса
Anatoly Shirokov
Тогда, зная смещение указателя в структуре, можно ...

reinterpret_cast<Pair*>(reinterpret_cast<char*>(&object) - offsetof(Pair, f))->s = 42; вы предлагаете делать так?

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта