소유 여부 확인
배열이 실제 저장 공간인지, 포인터가 외부 메모리를 가리키는 관찰자 역할인지 구분한다.
소유권이 없으면 delete 책임도 없다C++에서 배열 이름은 많은 식 문맥에서 첫 원소 포인터로 변환되지만, 배열 자체와 포인터가 같은 것은 아니다. 함수 인자로 넘어가는 순간 길이 정보가 사라지고, 포인터 산술은 원소 크기 단위로 움직이므로 범위 계약을 별도로 가져가야 한다.
배열이 실제 저장 공간인지, 포인터가 외부 메모리를 가리키는 관찰자 역할인지 구분한다.
소유권이 없으면 delete 책임도 없다sizeof가 배열 전체 크기를 주는 문맥과 포인터 크기만 주는 문맥을 나눈다.
함수 인자에서는 배열이 포인터처럼 조정된다p + 1은 byte 하나가 아니라 가리키는 타입의 원소 하나만큼 이동한다.
타입이 산술 단위를 정한다begin/end 또는 pointer와 length를 함께 전달해 out-of-bounds를 막는다.
끝 포인터는 가리키면 안 되는 경계다크기 고정은 std::array, 동적 크기는 vector, 빌린 연속 구간은 span을 고려한다.
raw pointer는 계약을 코드에 덜 드러낸다