Я только изучаю C ++ и решил использовать Allegro 5 и Visual Studio 2017 для создания простой 2D-игры, но, написав очень простую программу, которая просто создает и разрушает окно, я беспокоюсь, что при такой утечке памятиНасколько мне известно, в этом отношении код должен быть в порядке.
Надеюсь, мне просто нужно лучше понять, что Visual Studio показывает мне при запуске кода с помощью опции «Локальный отладчик Windows».
Я запускаю приведенный ниже код через Visual Studio 2017 и опцию «Local Windows Debugger».Насколько я вижу, код работает нормально, но в окне «Средства диагностики», глядя на использование памяти процесса, я обеспокоен возможной утечкой памяти.
Вот код ...
#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;
}
Вы увидите, что я вставил паузы в разных местах кода, и когда код достигнет последней паузы, я ожидаю, что использование памяти процесса будет таким же, как когда код был при первой паузе.
Это означает, что я ожидаю, что использование Process Memory будет таким же в конце main, как и в начале, или, конечно, после al_init ();
Но я вижу следующее...
Обычно память процесса показывает использование ...
При запуске Main ... 1.7MB
После al_init (); ... 1.7MB
После создания дисплея / окна ... 31.4MB
После al_destroy display / window ... 13.8MB
Конечно, после того, как окно разрушено / закрыто, я должен увидеть ProcessВозврат памяти к 1.7MB?
Я так же просто создал программу, используя OpenGL иувидеть подобное поведение, хотя и с более высоким использованием памяти процесса в целом.
Надеюсь, мне просто нужно лучше понять, что Visual Studio показывает мне при запуске кода с помощью опции «Local Windows Debugger».
Спасибо за чтение ....