Visual Leak Detectorを使用してメモリ リークを検出していますが、次のような行でメモリ リークの多くのインスタンスに遭遇しました。
class SomeClass
{
// ...
std::map<long,long> some_map;
void func(long a_long, long b_long)
{
some_map[a_long] = b_long; // here be a memory leak
}
}
これはどのように可能ですか?ここにはポインターがなく、オブジェクトのインスタンス化もありません。
他の何かが原因でプログラムがクラッシュしたことの副作用であるメモリリークでしょうか? プログラムがクラッシュしたり exit(1) したりすると、マップがきれいに破棄されなくなりますか?