我的代码会导致内存泄漏吗?
Will my code cause memory leakage?
我有一个for循环,迭代vector。然后,它检查给定的名称是否等于模型的名称。
最后,它创建一个指针并返回它。现在我的问题是,如果我不删除指针,是否会有任何内存泄漏?
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
终端工具检查您的内存泄漏
相关文章:
- C++功能泄漏内存,我是C++新手,不确定如何解决
- 我的堆栈弹出式磁带的实现是否泄漏内存?
- 将 c++ 向量转换为字符 ** 而不会泄漏内存
- 析构函数 C++ 使泄漏内存
- 构造函数对象赋值是否泄漏内存
- corba :: orb_init泄漏内存
- Gmock泄漏内存
- 如何在不泄漏内存的情况下删除链接列表
- Visual C ODBC关闭记录集泄漏内存
- 为什么泄漏内存比在动态数组上执行 delete[] 慢
- OpenGL正在泄漏内存.哪个对象未释放
- 可以std ::退出泄漏内存
- uiautomation findall泄漏内存
- 为什么在此OpenCL代码中泄漏内存,为什么要泄漏内存
- pthread在完成后会泄漏内存
- win32 标准::线程泄漏内存
- 返回指向同一变量的指针是否会泄漏内存
- 使用clectType(new any_type())可能会泄漏内存泄漏
- Windows开发:如何确定我的应用程序是否正在泄漏内存
- WinHttp打开泄漏内存