端的に言えば、生ポインタの参照外しが危険である場合がある理由は、有効なデータがあるメモリを指していることが保証されていないからです。
既に解放されているメモリを指している生ポインタの参照外しを行った場合、既に無効であるメモリを読み書きするわけですから、メモリ破壊という危険性があります。
Rustの(safeな)参照はライフタイムにより管理されていますから、このような問題は起きません。
なお、以上の話は特にRustに限った話ではなく、C/C++でも元から危険性のある操作です。
ガベージコレクションのある言語の場合は最後の参照が消えるまで指す先のメモリを保持し続けるため、無効であるメモリを読むことはありませんが、ガベージコレクションを行う必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/01 14:43