将新分配的数据直接传递给函数

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

在学习不同的语言时,我经常看到动态分配的对象,通常是Java和C#,如下所示:

functionCall(new className(initializers));

我知道这在内存管理语言中是完全合法的,但是这种技术可以在C ++中使用而不会导致内存泄漏吗?

提问于
用户回答回答于

==

这将内存的“所有权”传递给functionCAll()。它需要释放对象或保存指针,以便以后可以释放它。传递像这样的原始指针的所有权是在代码中构建内存问题的最简单方法之一 - 泄漏或双重删除。

用户回答回答于

这适用于在堆栈上创建的对象,但不适用于C ++中的常规指针。

一个自动指针可能能够处理它,但我没有弄乱他们足以知道。

扫码关注云+社区

领取腾讯云代金券