std :: uint_8 포인터가 포함 된 클래스가 있으며 소멸자를 호출하여 할당 된 메모리를 삭제해야합니다. 내가 겪고있는 문제는 컴파일러 오류가 발생하고 메모리가 할당되지 않았다고 나와 있지만 기본 생성자에 할당 된 것입니다.소멸자가 할당 된 메모리를 삭제하지 않음
BigInteger::BigInteger() {
unsigned char aArray [4];
aArray[0] = 0;
m_number = new unsigned char[4]
m_number = aArray;
m_digitCount = 0;
m_sizeReserved = 4;
}
여기 내 소멸자의 :
BigInteger::~BigInteger() {
delete [] m_number;
}
'm_number = aArray;'무엇을 기대합니까? – tkausl
'm_number'를'new'와 함께 할당합니다. 그러나 다음 줄에 그것을 다시 로컬 배열에 할당합니다. –
나중에 메모리 누수가 아니라 정의되지 않은 동작입니다. – NathanOliver