[C] 널(NULL) 포인터
카테고리: C
태그: Pointer
이 글은 C 널(NULL) 포인터를 공부하고 정리한 글입니다
코드 예시
int* pointer = NULL;
널(NULL) 포인터란?
- 아무것도 가르키지 않는 포인터
- 값이 ‘0’인 정수 상수 표현식
- 전용 매크로가 있음
#define NULL ((void*)0)
- 널 포인터 표현할 때 이 매크로를 사용할 것
비교
- 포인터 변수와 NULL은 비교(==, !=) 가능
NULL이 가지는 문제들
- 함수 매개변수로 포인터가 들어올 때는 언제나 골칫덩어리
- 누구나 NULL을 넣을 수 있기 때문에
- 기본적으로 NULL이 안 들어온다고 가정하고 함수를 작성할 것
- 기본적으로 NULL을 반환하지 않는다
- 반환을 해야 한다면 함수 이름에 NULL을 반환하는 것을 명시할 것
언제 사용하나?
- 포인터 변수를 초기화하고 싶을 때
- 아직 참조할 주소가 없을 때
- 포인터 변수가 유효한 주소를 참조하고 있는지 확인하고 싶을 때
- 댕글링 포인터를 막기 위해
- 동적 메모리 할당된 메모리를 더 이상 필요 없어서 해제했으면
- 더 이상 사용할 수 없는 데이터이니, 포인터 변수에 저장되어 있는 그 주소를 초기화해야 함
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기