【发布时间】:2012-05-19 10:07:21
【问题描述】:
一直在阅读 C++ 书籍,但我似乎找不到答案。我所知道的是动态内存分配,例如当我创建一个函数时:
void memoryleak(){
int * ptr = new int;
}
它分配一个内存并将该内存返回给指针,但是,由于指针是一个局部变量,在 memoryleak() 之后,包含内存引用的指针被释放,因为它是静态的,因此分配了内存丢失,不能再用于程序。
但这是否意味着内存永远丢失或仅在程序终止之前,就像编译这段代码后sn-p:
main(){
int * ptr = new int;
}
程序终止后,内存是继续分配还是释放?如果它保持分配状态,重新启动 PC 是否会使 PC 释放所有使用的内存?出于好奇,另一个关于他们使用的内存(在分配中)的问题是 RAM 吗? :)
【问题讨论】:
-
请选择您最喜欢的答案并接受它。对您的其他问题也这样做。见faq