Объяснение
Unsafe разрешает операции, корректность которых автор обязан доказать вручную. Он не отключает все проверки языка. FFI требует согласовать layout, ABI, владение и способ освобождения памяти.
Задача для самостоятельного решения
Кто освобождает буфер, выделенный C-библиотекой?
Показать разбор ответа
Тот, кто указан её контрактом, обычно через её же функцию освобождения. Произвольный Rust allocator может быть несовместим; обёртка должна выразить владение и Drop.