Я написал следующий код, чтобы преднамеренно создать утечку памяти.Почему в памяти протекают только три адреса памяти?
#include <windows.h>
int main(int argc, char* argv[])
{
while(1)
{
char *ch1 = new char[10];
char *ch2 = new char[5];
char *ch3 = new char[2];
Sleep(5);
}
return 0;
}
Я взял журналы с помощью LeakDiag и сделать следующий граф с помощью LDGrapher.
Теперь, мой вопрос, почему только три адреса показаны в графе утечек? Я продолжаю создавать новые указатели в while(1)
, так что я теряю память на множестве адресов?
Предположительно утечка агрегируются сайта вызова? –
@KerrekSB Извините, я не понял этого. –
В вашем коде есть 3 места, где вы просачиваете память. Вы видите эти 3 места. Это * коды * адреса, а не адреса данных. Они сильно различаются из-за опции компиляции/ZI. –