Это утечка памяти или я неправильно читаю то, что показывает Visual Studio 2017?

#allegro5

#allegro5

Вопрос:

Я только изучаю C и решил использовать Allegro 5 и Visual Studio 2017 для создания простой 2D-игры, но, написав очень простую программу, которая просто создает и уничтожает окно, я обеспокоен утечкой памяти, хотя, насколько мне известно, код в этом отношении должен быть в порядке.

Надеюсь, мне просто нужно лучше понять, что Visual Studio показывает мне при запуске кода с помощью опции «Локальный отладчик Windows».

Я запускаю приведенный ниже код с помощью Visual Studio 2017 и опции «Локальный отладчик Windows». Насколько я могу видеть, код работает нормально, но в окне «Инструменты диагностики», глядя на использование памяти процесса, я обеспокоен возможной утечкой памяти.

Вот код…

 #include <iostream>
#include <allegro5/allegro5.h>

int main()
{
std::system ("pause");

al_init();
ALLEGRO_DISPLAY *disp = al_create_display(320, 200);

std::system ("pause");

al_destroy_display(disp);
std::cout << "allegro display has been destroyed...n";

std::system("pause");

return 0;
}
  

Вы увидите, что я вставил паузы в разных местах кода, и когда код достигнет последней паузы, я ожидаю, что использование памяти процесса будет таким же, как при первой паузе кода.

Это означает, что я ожидаю, что использование памяти процесса будет таким же в конце main, как и в начале, или, конечно, после al_init ();

Но то, что я вижу, это…

Обычно память процесса показывает использование…

При запуске Main … 1.7MB

После al_init();… 1.7MB

После создания дисплея / окна … 31,4 МБ

После отображения / окна al_destroy … 13,8 МБ

Конечно, после уничтожения / закрытия окна я должен увидеть, что использование памяти процесса возвращается к 1,7 МБ?

Я создал аналогичную простую программу, используя OpenGL, и вижу аналогичное поведение, хотя и с более высоким использованием памяти процесса в целом.

Надеюсь, мне просто нужно лучше понять, что Visual Studio показывает мне при запуске кода с помощью опции «Локальный отладчик Windows».

Спасибо за чтение….

Комментарии:

1. Вы пробовали al_uninstall_system?