Спор с профилятором
Такой вот вопрос. Почему так получается?
Профилирую я прогу на CPP с помощью DevPartner for C++. И на следующем коде он выдает утечку памяти:
typedef struct A
{
Data * data;
}
.....
.....
.....
A a;
{
A tmp;
tmp.data = new Data();
a = tmp;
} <- тут он считает, что мы потеряли tmp.data
Если же написать так, то все нормально (хотя если a.data присваивать не &tmp_data, а, скажем, 0, то утечка фиксируется):
A a;
Data tmp_data;
{
A tmp;
tmp.data = new Data();
a.data = &tmp_data;
a = tmp;
}
Заранее спасибо.
очень похожая ситуация:
Действительно очень похожая. Спасибо=)