C/C++中动态内存分配

代码段:用来存放程序执行代码的一块内存区域。这部分内存大小在程序运行前已经知道,通常属于只读,其中包括只读的字符串常量,不可改变

BBS段:用来存放存放程序中未初始化的全局变量及静态变量,属于静态内存分配。

数据段:用来存放已初始化的全局变量及静态变量,属于静态内存分配。

堆:用来存放在程序运行中被动态分配的内存,它的大小并不固定。比如在malloc时新分配的内存就被添加到堆上,执行free操作时堆被减缩。

栈:函数执行时,函数内部的局部变量,函数参数,可以在栈上创建,在函数执行完成后会自动释放,栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

如下图:

原文地址:https://www.cnblogs.com/Blog-day/p/My_Blog_Days10.html