0
這是我的第一篇文章,所以要溫柔:d的getText()memoryleak
我剛開始這個工作,我的第一個任務是找到我做到了泄漏,由註釋指出。 我點擊控制的gettext(),我得到
virtual System::WideChar * __fastcall GetText(void);
我加了5個額外的pwide和泄漏增加(內存使用在任務主提高1000)。
我試過刪除和免費,但我得到例外。任何人有任何建議如何堵塞泄漏?
這裏是我的代碼:
UnicodeString CReportManager::GetFinalHTML()
{
UnicodeString ret = "";
ret = "<Reports>";
if(ErrorHTML->Count)
{
ret += "<Errors>" + UnicodeString(ErrorHTML->GetText()) + "</Errors>";
}
//System::WideChar *pWide= ReportHTML->GetText();
//System::WideChar *pWide4= ReportHTML->GetText();
//System::WideChar *pWide1= ReportHTML->GetText();
//System::WideChar *pWide2= ReportHTML->GetText();
//System::WideChar *pWide3= ReportHTML->GetText();
//delete pWide;
// free(pWide);
//ret +=pWide;
ret += ReportHTML->GetText(); //leak here
ret += "</Reports>";
#ifdef _DEBUG
ReportHTML->SaveToFile("C:\\debug.xml");
#endif
delete ReportHTML;
delete ErrorHTML;
ReportHTML = NULL;
ErrorHTML = NULL;
return ret;
}
你能分享'GetText()'的代碼嗎? –
歡迎。首先,目前還不清楚,您在這裏使用的是什麼框架或庫,RadStudio?你有'free'和'delete'兩個例外嗎? – sukhmel
您是否有權在互聯網上發佈公司代碼? – BoBTFish