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'で割り当てますが、次の行でローカル配列に再割り当てします。 –
メモリリークだけでなく、後で 'm_number'を使用すると未定義の動作です – NathanOliver