nx.png

栈(stack):指那些由编译器在需要的时候分配,不需要时⾃动清除的变量所在的存储区,效率高,分配的内存空间有限,形参和局部变量分配在栈区,栈是向地地址生长的数据结构,是一块连续的内存

堆(heap):由程序员控制内存的分配和释放的存储区,是向高地址生长的数据结构,是不连续的存储空间,堆的分配(malloc)和释放(free)有程序员控制,容易造成二次删除和内存泄漏

静态存储区(static):存放全局变量和静态变量的存储区,初始化的变量放在初始化区,未初始化的变量放在未初始化区。在程序结束后释放这块空间

常量存储区(const):存放常量字符串的存储区,只能读不能写,const修饰的局部变量存储在常量区(取决于编译器),const修饰的局部变量在栈区

程序代码区:存放源程序二进制代码

Last modification:October 19, 2020
如果觉得我的文章对你有用,请随意赞赏