私は、スタンダードが逆参照null
がUBであることを常に知らせてきました。しかし、Dereference nullは必ずしもUBではありませんか?
(Link 1)氏は述べています
のp = 0; * p;本質的にエラーではありません。
と
(Link 2)へのリンクを提供すること
* pはエラー左辺値が左辺値
に変換されていない限り、pがnullのとき(私は信じていないと言いますそれはタイプミスで、おそらく読むべきです左辺値はの右辺値に変換されます )
リンク1も言う
のchar * p = 0で。私が唯一として読むことができるのchar * Q = & *(P)
は "undefinedではない" で、または少なくとも明確に定義された実装定義
は、言語の弁護士は提供できます何が起こっているのかの権威ある説明?
私は言語弁護士ではありませんが、私のリンクを読むことは、それ自身のUBではなく、値を使用するだけでヌルポインタを逆参照することです。そして、はい、それはtypoと思われる、それはリンク1で引用されているように、右値に左値にする必要があります。静的メンバーの場合は静的な型だけが必要であり、link1はそれがわかる限り、それと一貫しているので、意味があると思います。 – drRobertz
実装がそれをsegfaultにする場合、それは本当にUBですか?私はそうでないものは考えられません。 – Donnie