>백엔드 개발 >C++ >C에서 참조에 대한 NULL 포인터를 역참조하면 어떻게 되나요?

C에서 참조에 대한 NULL 포인터를 역참조하면 어떻게 되나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-15 01:24:10243검색

What Happens When You Dereference a NULL Pointer to a Reference in C  ?

참조에 대한 NULL 포인터 역참조

C 표준은 참조를 얻기 위해 NULL 포인터를 역참조하는 동작을 명시적으로 다룹니다. 이 관행은 정의되지 않은 동작으로 간주됩니다.

제공된 예에서:

NULL 포인터 ptr의 역참조 시도는 정의되지 않은 동작으로 간주됩니다. 표준(8.3.2/4 "참조")에 따르면:

참고: 특히 잘 정의된 프로그램에는 null 참조가 존재할 수 없습니다. 이러한 참조는 null 포인터를 역참조하여 얻은 "객체"에 바인딩하는 것이며, 이로 인해 정의되지 않은 동작이 발생합니다.

따라서 참조를 역참조된 NULL 포인터는 유효하지 않으며 동작이 잘 정의되어 있지 않습니다. 역참조된 NULL 포인터에서 얻은 참조를 가리키는 ptr2를 사용한 결과도 정의되지 않습니다.

NULL 포인터 역참조 금지에 대한 한 가지 예외는 sizeof 연산자와 함께 사용될 때입니다. 이 컨텍스트에서는 포인터가 실제로 평가되지 않으므로 포인터를 역참조해도 정의되지 않은 동작이 발생하지 않습니다. 단, 이 예외는 sizeof 연산자로 제한됩니다.

위 내용은 C에서 참조에 대한 NULL 포인터를 역참조하면 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.