#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?