teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

m

2020/04/09 08:32

投稿

yumetodo
yumetodo

スコア5852

answer CHANGED
@@ -4,4 +4,17 @@
4
4
  >
5
5
  > ストレージが再利用される時に元のオブジェクトの寿命は一旦尽きているのだから原文は正しいのでは。
6
6
 
7
- 脳みそが回ってないのでこれを解釈するのは寝て起きてからにすることにします。
7
+ 脳みそが回ってないのでこれを解釈するのは寝て起きてからにすることにします。
8
+
9
+ ---
10
+
11
+ > [https://twitter.com/yumetodo/status/1248107858731749376?s=20](https://twitter.com/yumetodo/status/1248107858731749376?s=20)
12
+ > サンプルにある
13
+ > *pb; // OK: pb points to valid memory
14
+ > がなんでvalidなのかよくわからないです。なんでpb->f();がだめなのにデレファレンスしていいのか。
15
+
16
+ > [https://twitter.com/EzoeRyou/status/1248144850819502080?s=20](https://twitter.com/EzoeRyou/status/1248144850819502080?s=20)
17
+ > 妥当なメモリを参照しているというだけでD1としての寿命は尽きているからでは?
18
+
19
+ > [https://twitter.com/EzoeRyou/status/1248145254345109505?s=20](https://twitter.com/EzoeRyou/status/1248145254345109505?s=20)
20
+ > アドレスは取得できるしそのアドレスをvoid *型にキャストすることもできるが、pbは実装側からみるとD1を指していたようにみえるので(mutate()呼び出しは不透明)、D1を指しているものとして最適化がされてしまうかもしれないから動作を保証できないということでは。