c++ - 如果没有指针,获取工厂函数指针会怎样?

标签 c++ pointers dynamic-allocation

错误地,我使用了一个工厂函数,并且没有将返回的指针存储在任何地方。我不确定我的问题是否愚蠢, 但是,如果我们动态地在函数中分配内存,然后我们返回该内存,但不提供任何指针来存储它,会发生什么?那么内存会发生什么?这意味着根本没有机会删除它?和 像这样:

Aclass* getAclass()
{
    return new Aclass();
}

int main()
{
    getAclass();
}

最佳答案

它将保留在那里,直到程序关闭并且操作系统回收该内存。至少那些具有内存管理器的操作系统或具有硬件内存管理器的系统。

某些具有“garbage collectors”的语言可能会注意到指针指向未使用的内存并会自行删除该内存。如果不返回指针,则无法获取内存。如果您不使用该指针,它将被垃圾收集,假设语言理解内存不再使用。

关于c++ - 如果没有指针,获取工厂函数指针会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120871/

相关文章:

c++ - 更好的实现策略是什么?

c - 相同的源代码,但不同操作系统上的结果不同

c - 如何在不知道尺寸的情况下声明二维数组?

c - 从结构体的动态数组中删除元素

c++ - Spirit::Boost编译错误可能与单元素 fusion 序列有关

c++ - 迭代器的麻烦

c++ - N4140 中 [basic.link]/8 中要点的目的是什么?他们似乎没有带来任何新的东西

c++ - B+树实现,** vs *

将字符串转换为字符指针数组

c - free() 在动态分配的内存中的作用域是什么?