回答編集履歴

3

取り消し線の位置を修正しました

2019/02/19 06:29

投稿

tatsuya6502
tatsuya6502

スコア2035

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
 

2

誤字を修正しました

2019/02/19 06:29

投稿

tatsuya6502
tatsuya6502

スコア2035

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

回答の間違いを修正しました

2019/02/19 06:12

投稿

tatsuya6502
tatsuya6502

スコア2035

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