我正在製作一款shoot'em遊戲,並且已經進入一個問題,在一段時間和連續拍攝後,這些精靈將無法加載。在我的控制檯,一個錯誤打印出:C++/SDL2 IMG_Load錯誤(內存不足)
「IMG_LOAD_ERROR:內存不足」(簡稱「IMG_LOAD_ERROR:」是我自己的事)
我也用文本(SDL_ttf)顯示的彈藥數量。
我現在的假設是,我總是在生成的每個敵人的構造函數中調用IMG_load函數,但我甚至不確定是否這是造成它的原因。我能想到的還有更多的可能性。
此外,當它們被破壞時(當敵人身體不健康或離開屏幕時),我釋放它們的紋理。
有人可以幫助我理解這一點並幫助我解決它嗎?
我很驚訝你承認你沒有提供代碼,但仍然不提供代碼。你是否意識到我們要求你的代碼找出它有什麼問題? – sokkyoku
它發生在同一張單獨的圖像上還是在程序運行後的某個時間發生?如果後者,你可能沒有釋放你之前分配的內存(請參閱@Novros答案)。如果valgrind可以在你的操作系統上運行,那麼找到這種錯誤可能是最簡單的工具。如果沒有 - 專門設計用於查找泄漏的備選方案,但它們可能不像valgrind那樣冗長和直接。看到源代碼會很好,但如果你知道並且仍然沒有發佈代碼 - 我懷疑這個問題可能太大了。 – keltar