- 다른 자료형도 많은 경우에서 기본 값이 모든 비트가 clear된 0 값임.
- 포인터의 기본 값은 아무 것도 가리키지 않는 상태에 해당하는데, 그 상태는 다른 자료형처럼 0으로 나타낸 것.
- 그리고 많은 시스템에서 메모리의 0번지 (시작 지점) 이는 중요한 시스템 데이터를 담고 있고 (예: 인텔 리얼 모드의 인터럽트 벡터 테이블 역시 0000:0000번지) ,
메모리 보호 베커니즘이 있는 시스템이라변 이 구역의 접근을 차단할 것이므로 널 포인터는 접근하면 예외 인터럽트가 발생할 확률이 높음.
- 물론 다른 접근 불가 메모리 번지를 널 값으로 해도 되지만 디버깅 시 널 포인터 접근 예외는 메모리 접근 오류로 처리되는데
이 때 접근 오류 메모리 주소가 0x00000000인 게 눈에 띠고 널 포인터 접근이라는 걸 알아차리기 쉬움.
- 영어 단어에서 null이라는 단어 자체가 \'하나도 없는, 영 (0)의\' 라는 뜻을 나타냄. 어원상으로도.
- 포인터의 기본 값은 아무 것도 가리키지 않는 상태에 해당하는데, 그 상태는 다른 자료형처럼 0으로 나타낸 것.
- 그리고 많은 시스템에서 메모리의 0번지 (시작 지점) 이는 중요한 시스템 데이터를 담고 있고 (예: 인텔 리얼 모드의 인터럽트 벡터 테이블 역시 0000:0000번지) ,
메모리 보호 베커니즘이 있는 시스템이라변 이 구역의 접근을 차단할 것이므로 널 포인터는 접근하면 예외 인터럽트가 발생할 확률이 높음.
- 물론 다른 접근 불가 메모리 번지를 널 값으로 해도 되지만 디버깅 시 널 포인터 접근 예외는 메모리 접근 오류로 처리되는데
이 때 접근 오류 메모리 주소가 0x00000000인 게 눈에 띠고 널 포인터 접근이라는 걸 알아차리기 쉬움.
- 영어 단어에서 null이라는 단어 자체가 \'하나도 없는, 영 (0)의\' 라는 뜻을 나타냄. 어원상으로도.
댓글 0