C++ C+中的内存泄漏+;函数,visual studio 2012,链接列表
请有人帮助解决这个内存泄漏问题! 在我的C++ C+中的内存泄漏+;函数,visual studio 2012,链接列表,c++,visual-studio-2012,memory-leaks,linked-list,C++,Visual Studio 2012,Memory Leaks,Linked List,请有人帮助解决这个内存泄漏问题! 在我的projectInsert()函数中,我创建了一个new指针,在return之后,我使用delete删除了指针。但内存泄漏仍然存在。我做错了什么。请帮忙 struct HeliostatPointer { double x; double y; double z; double aa; bool Corner; double SB; double spillage; bool intersect; double lw; double lh; double
projectInsert()
函数中,我创建了一个new
指针,在return
之后,我使用delete
删除了指针。但内存泄漏仍然存在。我做错了什么。请帮忙
struct HeliostatPointer { double x; double y; double z; double aa; bool Corner; double SB; double spillage; bool intersect; double lw; double lh; double xx; double yy; double distance; HeliostatPointer* next; RV SunRayVector; RV ReflectedRayVector; double incident; double COS; RV NormalVector; HeliostatPointer* next2; HeliostatPointer* next3; };
HeliostatPointer* projectInsert(double ax, double ay, double az)
{
HeliostatPointer *temp = new HeliostatPointer;
temp->x = ax;
temp->y = ay;
temp->z = az;
temp->intersect = false;
temp->Corner = true;
return temp;
delete temp->next, temp->next2, temp->next3, temp;
}
退货后不能删除,必须在退货前删除
关键字return结束函数,因此永远不会执行删除操作返回后不能删除,必须在返回前删除
关键字return结束函数,因此永远不会执行删除操作您最好像这样使用std::shared\u ptr
#include <memory>
struct Data
{
};
std::shared_ptr<Data> Test()
{
Data* data = new Data();
std::shared_ptr<Data> ptr(data);
return ptr;
}
#包括
结构数据
{
};
标准::共享测试
{
数据*数据=新数据();
std::共享的ptr(数据);
返回ptr;
}
呼叫结束时,ptr将被释放。
当所有容器都被释放时,数据将被释放您最好像这样使用std::shared\u ptr
#include <memory>
struct Data
{
};
std::shared_ptr<Data> Test()
{
Data* data = new Data();
std::shared_ptr<Data> ptr(data);
return ptr;
}
#包括
结构数据
{
};
标准::共享测试
{
数据*数据=新数据();
std::共享的ptr(数据);
返回ptr;
}
呼叫结束时,ptr将被释放。
当所有容器释放时,数据将被释放您是否尝试过放置
delete temp->next,temp->next2,temp->next3,temp代码>之前<代码>返回温度代码>?您是否尝试过放置delete temp->next,temp->next2,temp->next3,temp代码>之前<代码>返回温度代码>?哦,我的天。。我觉得很轻松,哈哈!非常感谢你!!但是如果我在返回之前删除,那么我不能返回..对吗?你说得对!哦,我的上帝。。我觉得很轻松,哈哈!非常感谢你!!但是如果我在返回之前删除,那么我不能返回..对吗?你说得对!