Я всегда знал, что Стандарт предусматривает разыменование null
- UB. Однако
(ссылка 1) говорит
p = 0; *п; по своей сути не является ошибкой.
и предоставляет ссылку на
(ссылка 2) говорит
* p не является ошибкой, когда p равно null, если значение lvalue не преобразуется в lvalue
(Я считаю, что опечатка и, вероятно, должна читать значение lvalue преобразуется в rvalue)
Ссылка 1 также говорит
char * p = 0; char * q = & * (p)
"не undefined", который я мог бы читать только как четко определенный или, по крайней мере, определенный реализацией
Может ли адвокат языка дать авторитетное объяснение того, что происходит?