管理 Rust FFI 中的陣列

https://stackoverflow.com/questions/77935092/manage-arrays-in-rust-ffi

Rust FFI 中管理陣列

在 Rust 中編寫共享庫,並且應該是 FFI 兼容的。定義 struct Message,部分函數需要接收和返回此 struct 的陣列。接收不會造成問題,因為分配將由用戶處理,但是通過 FFI 返回陣列則更複雜。有 3 種實現方法,要問的是最常見的做法。MethodManager 的選擇?

1. 使用者處理分配
2. 有一個函數分配陣列,另一個函數處理釋放
3. 有一個函數接受回調

我找到一個有用的答案,但不喜歡需要傳遞要釋放的陣列大小。應該有辦法避免這個問題,對吧?因為像 Box這樣的類型應該存儲有關分配內存的元數據。基本上,我想要類似於 malloc/free 的行為。

via Recent Questions – Stack Overflow

February 4, 2024 at 04:54PM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *