C SDL事件内存泄漏

C SDL事件内存泄漏,c,events,memory,sdl,memory-leaks,C,Events,Memory,Sdl,Memory Leaks,SDL中是否有已知的导致内存泄漏的方法或函数 我注意到,在我的程序中,随着时间的推移,程序的内存使用率不断增加.1MB(即,在3分钟内增加了额外的.4MB) 我注释掉了我所有的表面绘制/闪电功能;几乎只是将主游戏循环与事件结构和屏幕翻转隔离开来,例如: // .. Intilize char quit = 0; Uint8* keystate = NULL; SDL_Event hEvent; while (!quit) { // .. Code while (SDL_Pol

SDL中是否有已知的导致内存泄漏的方法或函数

我注意到,在我的程序中,随着时间的推移,程序的内存使用率不断增加.1MB(即,在3分钟内增加了额外的.4MB)

我注释掉了我所有的表面绘制/闪电功能;几乎只是将主游戏循环与事件结构和屏幕翻转隔离开来,例如:

// .. Intilize
char quit = 0;
Uint8* keystate = NULL;
SDL_Event hEvent;
while (!quit) 
{
    // .. Code

    while (SDL_PollEvents(&hVvent)) {
        keystate = SDL_GetKeystate(NULL);
        // .. Event processing
    }

    // .. More Code

    if (SDL_Flip(screen) == -1)
        return 1

    SDL_Delay(1);
}   
// .. Cleanup

我最喜欢的检查内存泄漏的工具是。 编译代码后,只需运行以下命令:

valgrind --leak-check=full --show-reachable=yes ./executable
完成后,检查输出是否有内存泄漏信息。
通过发出-v标志,该工具可以更加详细,我不知道SDL中有任何泄漏。很可能它在您的代码中。您应该继续剥离程序,直到泄漏消失,或者您可以在问题中发布整个泄漏代码。
valgrind --track-origins=yes --leak-check=full --show-reachable=yes ./executable