C언어

NULL GUARD? 예외처리!

성-민 2024. 2. 27. 19:07

42에서 불리는 NULL GUARD라는 것이 있다.


이는 NULL이 발생할 상황을 예외처리 해주는 것이다.

char    *str; // 초기화되지 않은 포인터
if (str == NULL)
{
	//포인터가 NULL을 가리킴
}

이와 같이 초기화하지 않은 포인터는 'NULL'을 가리킨다.

if (!(str = (char *)buf))
	return (NULL);

 

이 조건은 str에 (char *)buf의 값을 대입한 후에 str이 NULL인지를 확인한다.
즉, str에 (char *)buf의 값을 대입했을 때 실패하면(즉, str이 NULL인 경우) 조건은 참이 됩니다.

이렇게 예상치 못한 경우에 NULL이 발생할 수 있는 상황을 예외처리 해준다.