저는 표준 참조가 역 참조 인 null
이 UB라는 사실을 항상 알고있었습니다. 그러나Dereference null이 항상 UB가 아닙니까?
(Link 1) 말한다
및p = 0; *피; 본질적으로 오류가 아닙니다.
(Link 2)에 대한 링크를 제공는 좌변이 저는 믿습니다 (좌변
로 변환되지 않는 페이지가 null의 경우
* P가 오류가 아닙니다 말한다 오타이고 아마도 읽어야합니다 왼쪽 값이 의 오른쪽 값으로 변환됩니다)
링크 1은 말한다
숯 * p = 0; 난 단지로 읽을 수의 char * Q = & * (P)
는 "정의되지"입니다, 또는 적어도 잘 정의 구현 정의
는 언어 변호사는를 제공 할 수 있습니다 무슨 일이 일어나고 있는지에 대한 권위있는 설명?
저는 언어 변호사가 아니지만 링크를 읽는 것은 그 자체로 UB가 아닌 null 포인터를 역 참조하는 것입니다. 값만 사용하는 것입니다. 그리고 예, 오타가있는 것으로 보입니다. 값이 1에 가까워 야합니다. 링크 1에서 인용 된 것입니다. static 멤버 인 경우에는 'operator *'의 정적 유형 만 필요하고, link1은 알 수있는 한 일관성이 있으므로 정적 멤버 경우에는 의미가 있다고 생각합니다. – drRobertz
구현을 통해 세그 폴트가 발생하는 경우 실제로 그 UB입니까? 나는 그런 것들을 생각할 수 없다. – Donnie