language-agnostic - memory-management - C++ stack heap memory allocation - 栈和堆是什么,在哪里?

stack heap中文 / memory-management / stack / heap / dynamic-memory-allocation

编程语言书籍解释了值类型是在堆栈上创建的,而引用类型是在堆上创建的,而没有解释这两种东西是什么。我还没有阅读清楚的解释。我了解堆栈是什么。但,

RajeshKdev



Answer #1

传统上,堆栈和堆位于进程的虚拟地址空间的相对两端。堆栈在访问时会自动增长,直至达到内核设置的大小(可以使用 setrlimit(RLIMIT_STACK, ...) 进行调整)。当内存分配器调用 brk()sbrk() 系统调用,从而将更多的物理内存页面映射到进程的虚拟地址空间时,堆就会增长。