Study

delete와 delete[]를 구분해서 사용해야 하는 이유

슈라。 2010. 1. 15. 16:35

  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