美文网首页
C/C++程序内存分配

C/C++程序内存分配

作者: 被使用了吧 | 来源:发表于2019-06-01 08:29 被阅读0次

程序的内存分配

转载链接:https://blog.csdn.net/LG1259156776/article/details/52627565

https://blog.csdn.net/k346k346/article/details/45592329

Linux程序内存分布

├———————┤低端内存区域

│ …… │

├———————┤

│ 动态数据区 │

├———————┤

│ …… │

├———————┤

│ 代码区 │

├———————┤

│ 静态数据区 │

├———————┤

│ …… │

├———————┤高端内存区域

由C/C++编译的程序占用的内存分为以下几个部分 :

1、堆区(heap):分配方式类似于链表;一般由程序员分配和释放,若程序员不释放,OS可能回收。分配方法:malloc、new ;释放方法:free delete。

2、栈区(stack):编译器自动分配释放,存放函数参数值、局部变量的值。操作方式类似于:数据结构的栈。  进程的每个线程都有私有的栈

3、全局区(静态区)(static):全局变量和静态变量的存储位置,由系统分配和释放。初始化的存放于.data,未初始化的在.bss。 默认初始化为0

4、文字常量区:由系统释放;存放于.rodata

5、程序代码区:存放函数体的二进制代码(.text)

堆栈 存放本地变量 即局部变量。在堆栈中,程序通过堆栈的基址和偏移量来访问本地变量。

相关文章

  • c++内存分配方式

    c++内存分配方式 1.内存分配简单介绍: 一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(sta...

  • 堆和栈的区别

    一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— ...

  • c++程序内存分配

  • 内存管理

    内容包括: C++内存管理 Java内存管理 C++内存管理 内存分配方式 在C++中,内存分成5个区,分别是栈、...

  • C/C++程序内存分配

    程序的内存分配 转载链接:https://blog.csdn.net/LG1259156776/article/d...

  • 堆和栈的区别

    一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由...

  • JAVA 与C++的区别

    1)Java比C++程序可靠性更高。 (2)Java语言不需要程序对内存进行分配和回收。Java丢弃了C++ 中操...

  • C++ 内存分配和管理

    C++ 内存分配和管理

  • C++中New关键字和命名空间

    动态内存分配 C++中的动态内存分配C++中通过new关键字进行动态内存申请C++中的动态内存申请是基于类型进行的...

  • 堆和栈的理解

    一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编...

网友评论

      本文标题:C/C++程序内存分配

      本文链接:https://www.haomeiwen.com/subject/fvrpbqtx.html