char** pArrStr = new char*[10];
for (int i = 0; i < 10; i++) {
pArrStr[i] = new char[20];
sprintf(pArrStr[i], "Hello World - %d", (i + 1));
}
for (int j = 0; j < 10; j++) {
cout << pArrStr[j] << endl;
delete [] pArrStr[j];
}
delete [] pArrStr;
// [] 하지 않았을때 소멸자가 한번만 실행됨.
// 원시타입일 경우 차이 없음.
malloc 도 위와 같음.
추가.
동적할당 메모리 누수 체크
stdafx.h 파일과 같이 모든 소스에서 include 하는 파일에 추가.
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
main() 에 추가.
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );