728x90
반응형
널 포인터 (Null Pointer)는 아무것도 가리키지 않는 포인터이다.
단순히 선언만 되고 초기화되지 않은 포인터와는 다르게 생각해야 한다.
널 포인터를 사용하는 이유는, 단순히 초기화되지 않은 포인터와 다르게 메모리 상의 어떠한 값을 가리키지 않기 때문이다.
초기화되지 않은 포인터는 쓰레기값이 들어갈 수 있기 때문에 어떠한 값을 가리킬 수 있다.
#include <stdio.h>
int main()
{
int *numPtr = NULL; // NULL은 널 포인터 상수 (정수값 0)으로 정의된다.
printf("%p\n", numPtr); // 0x0 "아무것도 가리키지 않음" 을 의미하는 주소값 0이 나온다.
return 0;
}
또한, 널 포인터는 널 문자 ('\0') 과는 다른 의미를 가진다.
널 포인터를 역참조하는 것은 일반적으로 매핑되어 있지 않은 메모리를 읽거나 쓰는 오류를 초래한다.
그렇게 되면 segmentation fault가 발생할 수 있다.
728x90
반응형
'CS 지식 > C, C++' 카테고리의 다른 글
[C++] 바킹독의 실전 알고리즘 1일차 (2) | 2023.03.01 |
---|---|
[C] open 함수 (0) | 2023.01.31 |
[C] strdup 함수 (0) | 2023.01.25 |
[C] write 함수 (0) | 2023.01.20 |
[C] strstr 함수 (0) | 2023.01.20 |