回答編集履歴
3
取り消し線の位置を修正しました
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
その通りです。スライス`&[T]`はポインタの一種で、参照先の値を所有しません。コード中のスライス`&[u8]`は`generator`関数内で作った固定長配列`[u8; 64]`を参照しています。しかしその固定長配列は`generator`
|
5
|
+
その通りです。スライス`&[T]`はポインタの一種で、参照先の値を所有しません。コード中のスライス`&[u8]`は`generator`関数内で作った固定長配列`[u8; 64]`を参照しています。しかしその固定長配列は ~~`generator`関数を抜ける時に~~ `for`ループを回るごとに ライフタイムが尽きて破棄されます。関数から返されたスライスがダングリングポインタ(不正なアドレスまたは解放済みのアドレスを指すポインタ)になってしまうためにコンパイルエラーになるのです。つまりこのケースではスライスは返せません。
|
6
6
|
|
7
7
|
|
8
8
|
|
2
誤字を修正しました
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
その通りです。スライス`&[T]`はポインタの一種で、参照先の値を所有しません。コード中のスライス`&[u8]`は`generator`関数内で作った固定長配列`[u8; 64]`を参照しています。しかしその固定長配列は`generator` ~~関数を抜ける時に~~ `forループを回るごとに
|
5
|
+
その通りです。スライス`&[T]`はポインタの一種で、参照先の値を所有しません。コード中のスライス`&[u8]`は`generator`関数内で作った固定長配列`[u8; 64]`を参照しています。しかしその固定長配列は`generator` ~~関数を抜ける時に~~ `for`ループを回るごとに ライフタイムが尽きて破棄されます。関数から返されたスライスがダングリングポインタ(不正なアドレスまたは解放済みのアドレスを指すポインタ)になってしまうためにコンパイルエラーになるのです。つまりこのケースではスライスは返せません。
|
6
6
|
|
7
7
|
|
8
8
|
|
1
回答の間違いを修正しました
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
その通りです。スライス`&[T]`はポインタの一種で、参照先の値を所有しません。コード中のスライス`&[u8]`は`generator`関数内で作った固定長配列`[u8; 64]`を参照しています。しかしその固定長配列は`generator`関数を抜ける時にライフタイムが尽きて破棄されます。関数から返されたスライスがダングリングポインタ(不正なアドレスまたは解放済みのアドレスを指すポインタ)になってしまうためにコンパイルエラーになるのです。つまりこのケースではスライスは返せません。
|
5
|
+
その通りです。スライス`&[T]`はポインタの一種で、参照先の値を所有しません。コード中のスライス`&[u8]`は`generator`関数内で作った固定長配列`[u8; 64]`を参照しています。しかしその固定長配列は`generator` ~~関数を抜ける時に~~ `forループを回るごとに` ライフタイムが尽きて破棄されます。関数から返されたスライスがダングリングポインタ(不正なアドレスまたは解放済みのアドレスを指すポインタ)になってしまうためにコンパイルエラーになるのです。つまりこのケースではスライスは返せません。
|
6
6
|
|
7
7
|
|
8
8
|
|