[英]Will my code cause memory leakage?
我有這個for循環遍歷一個向量。 然后它檢查給定的名稱是否等於模型的名稱。
最后,它創建一個指針並返回它。 現在我的問題是,如果我不刪除指針,是否會有任何內存泄漏?
Model3D* ModelMemory::GetModel(char* name)
{
for (std::vector<Model3D*>::reverse_iterator it = mModels->rbegin();it != mModel->rend();it++)
{
Model3D *model = *it;
if (model->GetName() == name)
{
return model;
}
}
}
謝謝你的幫助!
- 編輯 -
所以我的目標是將我的所有3D模型(存儲在Model3D類中)存儲在一個向量中,以便稍后可以使用Model3D的名稱檢索它。 有沒有更好的方法來做到這一點? 因為看起來我的方式不是很好的編程......
不,不會有內存泄漏,當然如果你以后刪除所有型號。 另外,使用strcmp()來比較兩個字符串
您沒有動態分配任何內存。 這是靜態分配
Model3D *model = *it;
當這個變量的上下文塊結束時(即從這個方法返回時)它將被銷毀。 它只是靜態分配的指針。
動態分配是使用new
運算符完成的,沒有任何運算符。
檢查泄漏的簡單規則是delete
每個new
。
您可以使用valgrind
終端工具檢查內存泄漏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.