我有一個包含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
您用'new'分配'm_number',但在下一行重新分配給本地數組。 –
這不僅是一個內存泄漏,但如果您稍後使用'm_number',它是未定義的行爲 – NathanOliver