|
동적으로 할당한 메모리를 관리하기 위해 아래와 같은 클래스를 만들었을때
클래스의 생성자 에서 할당한 메모리를 해제하기 위해 소멸자에서 할당한
메모리를 해제하도록 했는데 맞는지 모르겟습니다. 고수님들 아래 코드를
보시고 한 수 가르침 부탁드립니다.
class TBuf
{
public:
__fastcall TBuf( int num, int len );
__fastcall ~TBuf();
int ChannelNum;
int BufLen;
int *AI_BufY;
private:
};
TBuf * Buffer[10];
__fastcall TBuf::TBuf ( int num, int len ) //생성자
{
ChannelNum = num;
BufLen = len;
AI_BufY = new U16[ BufLen+100 ];
}
__fastcall TBuf::~TBuf() // 소멸자
{
delete AI_BufY;
}
void NewAllBuffer(void) // 버퍼 할당
{
int i;
for(i=0 i< 10; i++)
{
Buffer[i] = new TBuf(i, 100);
}
}
void DeleteAllBuffer( void ) // 모든 버퍼 삭제
{
int i;
for(i=0; i<10; i++)
{
delete Buffer[i];
}
}
위 코드에서 모든 버퍼를 삭제할때 for 문을 사용하지않고
delete[] Buffer;
이렇게 해주면 클래스 내에서 할당된 AI_BufY 까지 자동으로
해제 되는지요..
|