如果没有指针,获取工厂函数指针会怎样?
what happens if no pointer , gets the factory function pointer?
我错误地使用了一个工厂函数,并且没有在任何地方存储 returned 指针。我不确定我的问题是否愚蠢,
但是,如果我们动态地在函数中分配内存,那么我们 return 那块内存,但不提供任何指针来存储它会发生什么?那么内存会发生什么?这意味着根本没有机会删除它?和
像这样:
Aclass* getAclass()
{
return new Aclass();
}
int main()
{
getAclass();
}
它将保留在那里,直到程序关闭并且操作系统回收该内存。至少那些具有内存管理器的操作系统或具有硬件内存管理器的系统。
对于某些具有“garbage collectors”的语言来说,可能会注意到指针指向未使用的内存并将删除该内存本身。如果不返回指针,则无法获取内存。如果您不使用该指针,它将被垃圾收集,假设语言理解内存不再使用。
我错误地使用了一个工厂函数,并且没有在任何地方存储 returned 指针。我不确定我的问题是否愚蠢, 但是,如果我们动态地在函数中分配内存,那么我们 return 那块内存,但不提供任何指针来存储它会发生什么?那么内存会发生什么?这意味着根本没有机会删除它?和 像这样:
Aclass* getAclass()
{
return new Aclass();
}
int main()
{
getAclass();
}
它将保留在那里,直到程序关闭并且操作系统回收该内存。至少那些具有内存管理器的操作系统或具有硬件内存管理器的系统。
对于某些具有“garbage collectors”的语言来说,可能会注意到指针指向未使用的内存并将删除该内存本身。如果不返回指针,则无法获取内存。如果您不使用该指针,它将被垃圾收集,假设语言理解内存不再使用。