가능한 중복 : How does delete[] "know" the size of the operand array?delete []는 배열의 크기를 어떻게 알 수 있습니까?
의
How does the standard new operator work in c++?
How does delete[] “know” the size of the operand array?
속는 나는 할당 된 메모리의 크기에서 [] 수치를 삭제하는 방법 궁금합니다. 내가 다음과 같이하면 :
int* table = new int[5];
delete[] table;
나는 테이블의 기억이 자유롭게된다는 것을 알고있다. 하지만 포인터를 다른 테이블에 다시 할당하면 어떻게 될까요?
int* table = new [5];
int* table2 = new [9];
table = table2;
delete[] table;
크기 5 또는 9의 테이블을 무료로 제공합니까? 나는 new []와 delete []가 그들의 크기에 관한 정보를 어떻게 공유하는지에 관심이있다. 아니면 여기에 필수적인 것을 놓치고있을 수도 있습니다.
는 C의
중복되는 (다소간) http://stackoverflow.com/questions/377178/how-does-the-standard-new-operator-work-in-c/377208 –
동의하지 않습니다. 더 구체적입니다. –
부수적으로, 그리고 답변에서 언급했듯이, 이것은 구현 특정 물건입니다. 즉, 컴파일러에서 컴파일러로, 컴파일러 버전에서 컴파일러 버전으로 변경 될 수 있으므로 배열의 크기를 추출하는 방식에 의존해서는 안됩니다. –