需要帮助对内存泄漏源进行故障排除 - C++



我用这段代码得到了某种内存泄漏。虽然 is 实际上不会抛出任何错误,但当通过 Memcheck 运行时,它会检测到内存泄漏。

我是否也应该删除[]临时数组或其他东西?

这是它正在发生的功能:

每个内存分配都需要与一个释放配对。当此函数结束时,newBinaryNum指向的内存尚未解除分配,并且该内存的地址不会保留在任何地方。因此,内存泄漏。

由于您没有对此BinaryNum对象使用动态分配的任何好处,因此不要使用动态分配。只需将您的变量声明为BinaryNum newBinaryNum;即可。编译器不仅会处理此对象的内存需求,而且您的代码也能够从返回值优化中受益。

(另外,您应该更多地依赖标准库。您对binaryAry的操作模仿了std::vector的功能。为什么要重新发明轮子?此函数的重点应放在BinaryNum类上,因此将内存管理详细信息委托给标准库。

最新更新