有人请帮助解决这个内存泄漏问题!
在我的 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 结束函数因此永远不会执行删除
关于c++ - C++ 函数中的内存泄漏,visual studio 2012,链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41757789/