FFORGE//RS
← Маршрут

rust / УРОВЕНЬ 5

Указатель, запомнивший stack

ОЦЕНКА45 МИН
01

ТЕОРИЯ / ВОСПРОИЗВЕДЕНИЕ

Что нужно восстановить

  • Различать перемещение Pin-handle и pointee и создавать self-pointer на стабильном адресе

Pin фиксирует pointee, а не handle

Self-pointer можно установить лишь после помещения значения в окончательную allocation. `PhantomPinned` запрещает safe move-out, а `Box::into_pin` сохраняет уже созданный heap-address.

КОНТРОЛЬНАЯ ТОЧКА

Какая конструкция создаёт корректный self-pointer без последующего move pointee?

ISOLATED RUST 1.96
src/lib.rsРЕДАКТИРОВАНИЕ

02 / ОТЛАДКА

Найдите и исправьте дефект

Исправьте `PinnedMessage::new`: pointer после construction указывает на `text` и остаётся валиден при move `Pin<Box<_>>`. Сохраните API и `PhantomPinned`, не dereference raw pointer.

Инициализация редактора…
ОБЛАЧНЫЙ SANDBOXсеть выключена · 256 МБ · 12 с
1 / 64 KB
ВЫВОД
Runner ждёт отправки кода.