瓦尔格林德的泄漏预防
Leakage prevention in Valgrind
void update(int s) {
68 double *ungfi = new double[arraysisasazei];
69 double *vnsasai = new double[arraysizasaei];
70 deriv(dvsasi,vnsasai );
71 deriv(dusaasi,ungfi );
对于上面的代码,下面是我出现的错误,感谢您对kerrek SB的回复
==745== 800,000 bytes in 1,000 blocks are definitely lost in loss record 1 of 2
大概,您忘记在从函数返回之前删除数组。由于很难做到这一点(以防引发异常),请使用 RAII 来管理数组:
std::vector<double> uni(arraysizei);
std::vector<double> vni(arraysizei);
并根据需要uni.data()
和vni.data()
访问原始数组。
如果您出于某种原因真的想自己玩弄指针,请记住删除 delete []
以匹配new []
.请记住在每个可能的返回路径上执行此操作;即便如此,如果有任何异常,您也会有泄漏。
相关文章:
- 瓦尔格林德的内存泄漏使用新的
- CPP 中的瓦尔格林德和记忆泄漏:"Conditional jump or move depends on uninitialised values"
- 在瓦尔格林德的泄漏摘要中使用 std::ios::sync_with_stdio(fasle) 打印时获取"still reachable"
- 有没有办法只从瓦尔格林德获得泄漏摘要?
- 瓦尔格林德 + --泄漏检查 -> 不泄漏摘要
- 修复了瓦尔格林德错误内存泄漏的错误
- 为什么瓦尔格林德在这里看到内存泄漏,而没有
- 瓦尔格林德在组成中报告的内存泄漏
- 瓦尔格林德内存泄漏与动态数组C++
- C++内存泄漏,瓦尔格林德消息误导?
- 如何修复瓦尔格林德内存泄漏?
- 瓦尔格林德:我的记忆泄漏在哪里
- C++ 瓦尔格林德 分配比没有泄漏的免费分配更多
- 返回 std::string 时出现瓦尔格林德内存泄漏
- C++ 瓦尔格林德内存泄漏
- 如何追捕瓦尔格林德说不存在的内存泄漏?
- 瓦尔格林德报告内存泄漏,但我不明白它发生在哪里
- C++内存泄漏检查中的瓦尔格林德错误
- 检测"内存泄漏"时,瓦尔格林德的真实指针是什么?
- 内存泄漏/瓦尔格林德问题