C++可执行目标文件内存分区

简介: 我们知道链接器可以将多个目标文件合并成一个可执行目标文件,其中可执行目标文件又可以分为很多个段,本期将简单讲解Linux下C++的内存分段及各段所存放的内容。

1.内存分区

image.png


2.各分区存放的内容

.text段:存放代码。

.data段:存放全局的初始化的且初始化不为0。

.bss:存放全局的且未初始化或初始化位0的。

运行时堆:存放堆区的内容。

用户栈:存放局部变量的。


3.补充

在Linux32位系统下,每位内核虚拟地址空间默认是1G,用户空间是3G的,当然这个可以通过操作系统的配置来调整每一个进程的虚拟地址空间与内核空间大小的比例。

相关文章
|
27天前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
86 21
|
15天前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
19天前
|
存储 C语言 C++
【C++打怪之路Lv6】-- 内存管理
【C++打怪之路Lv6】-- 内存管理
34 0
【C++打怪之路Lv6】-- 内存管理
|
27天前
|
Linux C++
Linux c/c++文件的基本操作
在Linux环境下使用C/C++进行文件的基本操作,包括文件的创建、写入、读取、关闭以及文件描述符的定位。
18 0
Linux c/c++文件的基本操作
|
24天前
|
C++
C/C++内存管理(下)
C/C++内存管理(下)
43 0
|
24天前
|
存储 Linux C语言
C/C++内存管理(上)
C/C++内存管理(上)
34 0
|
27天前
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
37 0
|
27天前
|
Linux C++
Linux c/c++文件移动
这篇文章介绍了在Linux环境下,使用C/C++语言通过命令方式和文件操作方式实现文件移动的方法。
55 0
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
325 0
|
10天前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
19 1