1.2.4 C 스타일 배열의 제약 사항
C 스타일의 배열은 배열의 역할을 충분히 수행하지만 그다지 많이 사용되지는 않습니다. C 스타일 배열은 몇 가지 제약 사항을 가지고 있어서 더 나은 형태의 배열이 필요하기도 합니다. 다음은 C 스타일 배열의 단점 몇 가지를 나열한 것입니다.
• 메모리 할당과 해제를 수동으로 처리해야 합니다. 메모리를 해제하지 못하면 메모리 릭(memory leak)이 발생할 수 있고, 이 경우 해당 메모리 영역을 사용할 수 없습니다.
• [] 연산자에서 배열 크기보다 큰 원소를 참조하는 것을 검사하지 못합니다. 잘못 사용하면 세그멘테이션 결함(segmentation fault) 또는 메모리 손상으로 이어질 수 있습니다.
• 배열을 중첩해서 사용할 경우, 문법이 너무 복잡해서 코드를 이해하기 어렵습니다.
• 깊은 복사(deep copy)가 기본으로 동작하지 않습니다. 이러한 동작은 수동으로 구현해야 합니다.
위와 같은 문제점을 회피할 수 있도록 C++는 C 스타일 배열을 대체하는 std::array를 제공합니다.