サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
qiita.com/winzu44
Cと少し違うところがある感じがしたのでメモ。 前提として、Cでのポインタ、参照などを分かっていないと難しい。 所有権について rustには所有権という概念がある。 String型など、ヒープによって確保されるデータ(コンパイル時にサイズが不明なデータとも言える)を変数に格納するとき、そのデータ ”そのもの” ではなく ”データのポインタ” が格納される。(Cでの文字列と同じ感じ。) もし、下コードのように x がString型の変数であり、そこから y = x とするとき、x, yどちらも、同じ"データのポインタ"が格納される。 そして、rustはスコープを抜けたら、メモリを開放するという特徴がある。 もしx, yで同じポインタを持っているのであれば、同じメモリを解放しようとしてしまう。 これを防ぐためのものが”所有権”である。 y = x としたときに所有権がyに移る、つまりxは無効にさ
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く