如果没有指针,会得到工厂函数指针会发生什么?

时间:2016-03-20 23:23:38

标签: c++ pointers dynamic-allocation

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

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

int main()
{
    getAclass();
}

1 个答案:

答案 0 :(得分:3)

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

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