동적으로 할당 된 배열의 시작 주소에 할당 된 포인터에 배열의 크기 정보가 없다는 것이 사실입니까? 따라서 나중에 포인터를 통해 배열을 처리하기 위해 크기를 저장하기 위해 다른 변수를 사용해야합니다.동적으로 할당 된 배열의 크기
그러나 동적으로 할당 된 배열을 해제 할 때는 크기를 지정하지 않고 단순히 "free ptr"또는 "delete [] ptr"로 지정합니다. 배열의 크기를 어떻게 알 수 있습니까? 아니면 삭제할 수 있습니까? 배열의 크기를 다른 변수에 저장하는 것을 피하기 위해 동일한 체계를 사용할 수 있습니까?
감사합니다.
참고 그 시점에서 할당 된 블록의 크기 할당 자 구현보기는 사용자가 요청한 크기보다 클 수 있습니다. –
또한 원시 기본 블록의 크기를 초과하여 유형 T에 소멸자가있는 경우 시스템은 소멸자를 호출 할 수 있도록'new T [n]'_에 전달 된'n '을 저장해야합니다. 'delete []'가 호출됩니다. 물론 'n'을 저장하는 방법과 위치는 원시 블록 크기의 저장과 마찬가지로 구현에 따라 다릅니다. –