Утечка памяти в sdl2?
У меня есть простая программа, которая создает окно только sdl2
:
::SDL_Init(SDL_INIT_EVERYTHING);
auto window_ = ::SDL_CreateWindow("", 0, 0, 640, 480, ::SDL_WINDOW_OPENGL);
bool game_on = true;
while (game_on) {
::SDL_Event event;
while (::SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
game_on = false;
break;
default:
break;
}
}
}
::SDL_DestroyWindow(window_);
::SDL_Quit();
И если я скомпилирую и запустите это с address-sanitizer
У меня есть такой вывод:
==10545==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 8192 byte(s) in 2 object(s) allocated from:
#0 0x4e1838 in __interceptor_malloc (/home/andrej/Public/git/sdl_game/bin/sdl_game+0x4e1838)
#1 0x7f3eb1a61faf (<unknown module>)
SUMMARY: AddressSanitizer: 8192 byte(s) leaked in 2 allocation(s).
Как вы можете видеть address-sanitizer
обнаружена утечка памяти. Но если я удалю последнюю строку (::SDL_Quit()), то это сообщение исчезнет. Зачем?