一直在阅读 C++ 书籍,但我似乎找不到答案。我所知道的是动态内存分配,例如当我创建一个函数时:
void memoryleak(){
int * ptr = new int;
}
它分配一个内存并将该内存返回给指针,但是,由于指针是一个局部变量,在 memoryleak() 之后,包含内存引用的指针被释放,因为它是静态的,因此分配的内存丢失并且不能重复用于程序。
但这是否意味着内存将永远丢失,或者仅在程序终止之前,就像编译此代码片段后一样:
main(){
int * ptr = new int;
}
程序终止后,内存会保持分配还是释放?如果它保持分配状态,重新启动 PC 是否会使 PC 释放所有使用的内存?出于好奇,另一个关于他们使用的内存(在分配中)的问题是 RAM 吗?:)