c++ - C++ 函数中的内存泄漏,visual studio 2012,链表

标签 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 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/

相关文章:

ios - NSMutableArray addObject 在设备中崩溃但在模拟器中运行良好

c++ - 尝试将字符串推到列表后面时出现段错误

git - 无法通过 visual studio 将提交推送到 GitHub

ios - 如何使用 __block 和完成 block 避免内存泄漏

c++ - std::make_shared 在 VS2012 中进行两次构造函数调用

visual-studio - 如何配置 VS2012 测试运行器来选择和运行 Gallio 单元测试?

c++ - SFML 纹理内存管理

c++ - 从 pcl::people::Person Cluster<Point> 中提取点云

c++ - 以有效的方式重新分配内存

c++ - QList<float*> 类型的 NULL 返回值