デストラクタや割り当てられたメモリの解放に問題があるようです。 ここに私の単純なコードです:クラスへのポインタの無効な無効化
void* Init(){
try {
Facebook* DS = new Facebook();
return (void*)DS;
} catch(std::bad_alloc&) {
return NULL;
}
}
、ここでは、この機能によって割り当てられたメモリを解放する機能です:
void Quit(void** DS){
delete (Facebook*)DS;
*DS = NULL;
return;
}
イムは、単にこれらの2つの機能が無効でのラインで削除取得イムだけ呼び出す場合は、削除し、新しいものによって割り当てられたメモリが失われました。あなたはFacebook
オブジェクトを削除していない
class Facebook {
private:
List<Troll*> trollsList;
AVLTree<PostByLikes> likesTree;
AVLTree<PostById> idTree;
int maxPost;
}
と、このクラスのコンストラクタで行われて何の割り当てメモリはありません...
を試してみてください[RAII](http://stackoverflow.com/questions/2321511/what-is-meant-byをご覧ください-resource-acquisition-is-initialization-raii)と同様のコードを省いてください。 – OMGtechy
'Quit'はデストラクタに置き換えてください。 – erip
[OT]: 'Init()'は 'return new(std :: no_throw)Facebook();'に単純化できます。 – Jarod42