Я использую Визуальный детектор утечек для обнаружения утечек памяти и обнаружил много случаев утечек памяти в таких строках, как:
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
}
}
Как это вообще возможно? здесь нет указателей, нет экземпляров объектов.
Может ли быть утечка памяти побочным эффектом сбоя программы из-за чего-то еще? Может ли сбой программы или выход (1) привести к тому, что карта не будет полностью уничтожена?