所以當我運行這個應用程序時,每一件事情都會流暢運行,但它越走越慢。我查看了它正在使用的內存,當它達到400 mb時,它完全停止30秒,然後回落到200.SDL2內存泄漏C++
我對SDL2很新穎,我認爲這是因爲我調用的每個幀:
optionsTS = TTF_RenderText_Blended(font, "Options.", blanc);
optionsT = SDL_CreateTextureFromSurface(renderer, optionsTS);
例如,我有很多。
問題是我不知道如何正確刪除每個對象的對象,因爲如果我做了SDL_FreeSurface,我得到一個錯誤。
我不會發布我的整個代碼,因爲它是一團糟,但如果你想要它,隨時問。
你知道如何解決這個問題嗎?
嗨,我會從每個框架中刪除optionsTS和optionsT,並將其作爲變量傳遞,這樣它只會創建一次,而不是每個框架。然後,這將允許您在每個需要它的框架中將它作爲參數傳遞。通常,在渲染循環中嘗試而不是創建任何對象,往往會快速變得龐大而混亂。 – GMasucci
好的謝謝,我會看看是否有幫助 – user2826636
謝謝!有效!!! – user2826636