c++ - 需要帮助解决内存泄漏源 - C++
问题描述
这段代码出现了某种内存泄漏。虽然 is 实际上并没有抛出任何错误,但是当通过 Memcheck 运行时,它会检测到内存泄漏。
我还应该删除[]临时数组还是什么?
这是它发生的功能:
解决方案
每个内存分配都需要与一个释放配对。当这个函数结束时,所指向的内存newBinaryNum
还没有被释放,并且该内存的地址也不会被保留在任何地方。因此,内存泄漏。
由于您没有为此BinaryNum
对象使用动态分配的任何好处,因此请不要使用动态分配。只需将您的变量声明为BinaryNum newBinaryNum;
. 编译器不仅会处理该对象的内存需求,而且您的代码也将能够从返回值优化中受益。
(此外,您应该更多地依赖标准库。您对binaryAry
模仿功能的操作std::vector
。为什么要重新发明轮子?您在此功能中的重点应该放在BinaryNum
类上,因此将内存管理细节委托给标准库.)
推荐阅读
- c - 在 Swift 5 中访问 C 双指针数组(**条目)
- spring-boot - 在 Spring Boot 中的 Ngnix 服务器后面运行时,无法在 swagger-ui.html 页面中加载 Css、Js 文件
- sql-server - 每当软删除行时,如何使用已删除的时间戳列填充列?
- powershell - 如何从 PowerShell 的目录输出中删除 FullName 标头
- react-native - 有没有办法在 React Native 中更改 DialogInput 中的键盘类型?
- r - R找到数据框列中最大值的索引
- javascript - JS中使用formdata和fetchAPI将表单上传的图片发送到服务器
- math - 表中值的插值
- java - 如何在控制器的方法中注入服务?
- sparse-matrix - 稀疏和复杂的广义特征值问题