堆栈与堆内存

问题描述 投票:0回答:1

栈内存和堆内存是否分配在内存的不同位置?在课堂上,他们就是这样教我们的。特别是在 c++ 中,当在堆上分配内存时,您需要使用指针来跟踪它,因为如果您丢失了它的位置,它可能在计算机中的任何地方,因此编译器不知道在哪里释放它。至少我是这样解释的。

但是我班的一个学生,他是一个非常优秀的程序员并且非常了解编程,他说堆和栈可以并排存储。当你在堆上分配内存时,你所做的就是告诉编译器无限期地保留这块内存。 VS 普通堆栈内存告诉编译器只在程序运行时保留分配的内存?

那是什么?两者的混合体?两者都不?比简单的类比复杂很多?谢谢。

我希望这两种不同类型的内存位于计算机的不同位置。但现在我不确定。

c++ memory memory-management stack heap-memory
1个回答
0
投票

你对第一段中不同类型记忆的理解是正确的。我知道堆上的内存在程序终止后可能会被“遗忘”;但是大多数操作系统都有适当的进程来作为一种清理。

© www.soinside.com 2019 - 2024. All rights reserved.