私のC++のゲームでは、EnemyType
へのポインタの配列を持っています。私は、メモリリークを検出するためのVisual漏れ検出器を使用し、それは私が次のコードでリークを持っている私に言っています:配列を作成するときにC++のメモリリークが発生する
vector<EnemyType*> enemyTypes(number_of_lines);
for (int i = 0; i < number_of_lines; i++)
{
enemyTypes[i] = new EnemyType();
}
はのはnumber_of_lines
は、この場合は3であるとしましょう。ここで私は漏れをどうやって作り出しているのでしょうか?それについて何かできますか?
私は約1ヶ月前にC++の学習を始めました。私はまだ毎日勉強していますが、誰かが私を説明することなく(このような)理解できません。
EDIT:私はプレーンな配列の代わりにベクトルを使うようにコードを修正しました。あなたの元のコードから
ベクターを試しましたか? –
メモリを解放するのを忘れると、リークが作成されます。上記のコードはこの問題を示していません。 MCBを作成します。 –
'enemyTypes'がメソッドに対してローカルで、各要素(および配列自体)を'削除 'しないと、リークします。 'std :: vector'の使用を検討してください。ダイナミックメモリは常に望ましいとは限りません。また、使用すると、適切なスマートポインタが管理部分を活用することができます。 –
Jack