new[] 를 사용 할 경우 할당할 메모리의 앞에 4바이트 메모리를 더 할당하여 배열의
Size를 저장해 둔다. new[]를 사용해 할당한 메모리를 해제할 때 delete[]를 사용하면
배열의 Size를 확인하지만 delete를 사용하면 확인하지 않고 해제한다.
따라서 delete[]를 사용해야 클래스 배열인 경우에도 각각의 Entry의 소멸자를 호출해 줄
수 있다.
요약하자면 delete와 delete[]모두 메모리 해제는 정상적으로 진행 되지만 클래스 배열
을 delete[]를 사용해서 해제하지 않고 delete를 사용 할 경우 소멸자가 한 번만 호출
되고 메모리를 해제함으로써 문제가 발생할 수 있다.
'Study' 카테고리의 다른 글
static binding, dynamic binding (0) | 2010.01.25 |
---|---|
const와 static (0) | 2010.01.20 |
C 언어로 작성된 코드를 C++에서 사용할 경우 (0) | 2010.01.15 |
Hungarian Notation (0) | 2010.01.05 |
tinyOS 2.x 설치 (0) | 2009.05.11 |