在学习不同的语言时,我经常看到动态分配的对象,通常是Java和C#,如下所示:
functionCall(new className(initializers));
我知道这在内存管理语言中是完全合法的,但是这种技术可以在C ++中使用而不会导致内存泄漏吗?
发布于 2019-03-21 07:56:51
这适用于在堆栈上创建的对象,但不适用于C ++中的常规指针。
一个自动指针可能能够处理它,但我没有弄乱他们足以知道。
发布于 2019-03-21 09:35:17
==
这将内存的“所有权”传递给functionCAll()。它需要释放对象或保存指针,以便以后可以释放它。传递像这样的原始指针的所有权是在代码中构建内存问题的最简单方法之一 - 泄漏或双重删除。
https://stackoverflow.com/questions/-100001016
复制相似问题