[C] 널(NULL) 포인터

Date:     Updated:

카테고리:

태그:

이 글은 C 널(NULL) 포인터를 공부하고 정리한 글입니다

코드 예시

int* pointer = NULL;

널(NULL) 포인터란?

  • 아무것도 가르키지 않는 포인터
  • 값이 ‘0’인 정수 상수 표현식
  • 전용 매크로가 있음
    #define NULL ((void*)0)
    
    • 널 포인터 표현할 때 이 매크로를 사용할 것

비교

  • 포인터 변수와 NULL은 비교(==, !=) 가능

NULL이 가지는 문제들

  • 함수 매개변수로 포인터가 들어올 때는 언제나 골칫덩어리
  • 누구나 NULL을 넣을 수 있기 때문에
    • 기본적으로 NULL이 안 들어온다고 가정하고 함수를 작성할 것
  • 기본적으로 NULL을 반환하지 않는다
    • 반환을 해야 한다면 함수 이름에 NULL을 반환하는 것을 명시할 것

언제 사용하나?

  • 포인터 변수를 초기화하고 싶을 때
    • 아직 참조할 주소가 없을 때
  • 포인터 변수가 유효한 주소를 참조하고 있는지 확인하고 싶을 때
  • 댕글링 포인터를 막기 위해
    • 동적 메모리 할당된 메모리를 더 이상 필요 없어서 해제했으면
    • 더 이상 사용할 수 없는 데이터이니, 포인터 변수에 저장되어 있는 그 주소를 초기화해야 함


참조

포큐아카데미 C 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

C 카테고리 내 다른 글 보러가기

댓글 남기기