C
cpp
@cplusplustudy47 подп.
222просмотров
27 августа 2023 г.
Score: 244
Продолжение. В таком случае нам на помощь приходит std::bit_cast , либо его аналог написанный вручную: #include <cstdint> #include <cstring> #include <iostream> struct Person { int age; char cityInfo[4]; }; struct City { long id; }; int main() { Person me; City city; std::memcpy(&city, &me.cityInfo, sizeof(City)); std::cout << city.id << std::endl; return 0; } И хоть в данном случае мы и выделили на стеке память под новую структуру, в реальности в большинстве случаев компилятор может оптимизировать данное выделение. Все примеры вы можете найти тут: https://github.com/PatriosTheGreat/cppchannel/tree/main/ub_cast
222
просмотров
692
символов
Нет
эмодзи
Нет
медиа

Другие посты @cplusplustudy

Все посты канала →
Продолжение. В таком случае нам на помощь приходит std::bit_ — @cplusplustudy | PostSniper