如果没有指针会发生什么情况,获取工厂函数指针



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

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

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

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

最新更新