私は他の誰かが書いたコードを変更しています。コードのある部分では、ポインタのベクトルへのポインタを使用しています。ポインタのベクトルへのポインタ
class2 *pointofclass2 = new class2();
class1 * pointofclass1 = new class1(.....)
pointofclass2->push_back(pointofclass1);
は、その後、コード
delete pointofclass2;
は今、私は、これはメモリリークを引き起こしていると思います。私はこれが原因であるかどうかを確かめる前にこれを遭遇したことはありませんか?どんな助けでも大歓迎です。もしそうなら、メモリを解放する正しい方法は何ですか?
'class2'は' vector'から継承していますか?あなたは間違いなく 'pointofclass2'を削除するべきですが、' pointofclass1'がメモリのどこかにまだ残っているのか疑問に思っていますか? 'class2'のデストラクタでクリーンアップする必要があります。あなたはあなたが記憶を漏らしていることをどのように知っていますかValgrind? – prelic
A)メモリリークがあります。例えば私はプログラムを実行すると、それはますます多くのメモリを使い切ってしまいます。そしてB)私は、おそらくclass1 * pointofclass1 = new class1(....)の行を示すValgrindから失われるでしょう。 – Robert