Valgrind的告訴我:C++ Valgrind的內存泄露
==19305== 16 bytes in 1 blocks are definitely lost in loss record 19 of 179
==19305== at 0x402842F: operator new(unsigned int)
==19305== by 0x805273E: Loader::createLevel(int, int, std::string, Player*, int, int, int)
==19305== by 0x80551B0: Loader::loadLevel()
==19305== by 0x80676C2: main (main.cpp:38)
我的功能Loader:.createLevel
得到了幾個new
語句。我怎麼知道他們中的哪一個造成泄漏(即線路)?
謝謝!
P.S:我很樂意發佈代碼,但它是太長:/
簡單而長期的解決方案是將使用'new'創建的數組更改爲向量,並將任何其他具有'new'的指針分配給智能指針。內存將自動解除分配。 – chris
@chris,我沒有創建任何數組 –
請確保您有一個析構函數,其中在堆上的構造函數創建的所有實例在最後都被釋放並釋放。 –