2014-08-28 65 views
0

我在代碼中發現內存泄漏,但我找不出如何解決它。PxMaterial內存泄漏

當i循環是這樣的:

for (;;) 
{ 
    physx::PxMaterial *pMaterial = pPhysic_physicsSDK->createMaterial(0.5f, 0.5f, 0.5f); 
    pMaterial->release(); 
} 

我有內存溢出。內存不釋放。如何正確發佈它?

我試圖刪除它「delete pMaterial」,但沒有授予刪除訪問權限。

回答

0

你永遠不會從for循環中突破。除非您致電break;,否則它永遠不會停止運行。

for (;;) 
{ 
    physx::PxMaterial *pMaterial = pPhysic_physicsSDK->createMaterial(0.5f, 0.5f, 0.5f); 
    pMaterial->release(); 

    if(**something is satisfied**) 
     break; 
} 

這會停止內存溢出,因爲它最終會離開for循環。

+0

我知道了。但在我的代碼上面。我建議它不要吃掉我所有的記憶,因爲我在每個循環中釋放它。但它呢! – 2014-08-28 13:19:16

+0

您是否試過在調用delete時使用「&」解引用指針而不是發佈 – Darrell 2014-08-28 13:23:40

+0

嘗試打印pMaterial包含的內容,然後釋放它以確保它實際上正在發佈......查看是否有幫助 – Darrell 2014-08-28 13:35:16