
95
코드의 여러 위치에서 동적 메모리를 할당하고, 메모리 부족과 같은 오류 상황
에 대응하려 한다.
요청한 메모리를 사용할 수 없으면
malloc
함수는
NULL
을 반환한다.
malloc
의 반환 값을 확인하지 않으면 메모리를 사용할 수 없고
NULL
포인터에 접근하
는 경우에 프로그램이 충돌을 일으킬 수 있다. 메모리를 할당받은 모든 곳에서
반환 값을 점검한다면 코드는 더 복잡해지고, 읽고 유지관리하기도 더 힘들어
진다.
이러한 점검 지점이 코드베이스 전체에 퍼져 있는 상태에서 추후에 할당 오
류 시에 취하는 동작을 수정하려면 여러 위치에서 코드를 수정해야 한다. 기존
함수에 오류 점검 코드를 추가하면, 하나의 함수는 하나의 역할만 수행해야 한
다는(그리고 할당이나 프로그램 로직 같이 여러 가지를 동시에 수행하면 안 된
다는) 단일 책임 원칙을 위반하게 된다.
또한, 명시적으로 할당받은 모든 메모리를 초기화하기 위해 나중에 메모리
할당 방법을 바꾸려 하면 코드 여기저기에 퍼져 있는 할당 함수들을 많이 호출
하게 되고 작업이 매우 어려워진다. ...