前回は、引数や戻り値について、値渡しをしたのだが、今回はポインタを使ってみる。 ポインタを使用する場合、それを表すクラスを使用するのだが、Ruby か Rust のどちらでメモリ領域を確保したかにより、使用するクラスが異なる。 Ruby 側でアロケートしたメモリについては、FFI::MemoryPointer を使用し、Rust 側でアロケートしたメモリについては、FFI::Pointer を使用する。 FFI::MemoryPointer の場合 確保された領域については、Ruby のGC が自動で解放してくれる。 FFI::Pointer 次に、Rust 側でヒープ領域のメモリを確保し、FFI::Pointer を使用して、Ruby 側で参照してみる。 先ほどの、FFI::PointerMemory で、確保され場合と異なり、 Rust 側で確保されたメモリ領域は、GC により解放され