堆和栈

功能

堆是一块动态分配内存的区域,由于存储程序运行时创建的对象。堆的大小可以在程序运行时动态调整。

特点

堆的分配和释放是由程序员手动控制。堆的分配和释放顺序可以是任意的,不需要遵循先进先出的原则。堆的分配和释放需要显式的调用函数。

C语言中使用malloc函数进行堆区申请,free函数进行堆区释放

C++中使用new函数进行堆区申请,delete函数进行堆区释放

堆是从下向上进行数据存储

功能

栈是一种用于存储局部变量和函数调用信息的数据结构

栈的大小在程序编译时确定,通常较小

特点

栈的分配和释放是由编译器自动控制的。

栈的分配和释放顺序遵循先进后出的原则。栈的分配和释放无需显式的调用函数,也是由编译器自动完成的

栈是从上向下进行数据存储,包含变量、函数地址等,数据存入栈区称为入栈/压栈,取出称为出栈

最后修改:2023 年 11 月 10 日
如果觉得我的文章对你有用,请随意赞赏