内存对齐的原则
(1)如果结构体中有大于或等于4字节的基本数据类型,按照4字节对齐
(2)如果结构体内部只有小于4字节的基本类型,这时按照最大的那个数据类型对齐
struct aa { //占用16个字节
char b;
int c;
struct d{
char d1;
short d2;
int e;
}
}
代码段:代码,
全局常量(const),
字符串常量
数据段(静态区):全局变量(初始化的以及未初始化的)、静态变量(全局的和局部的,初始化的和未初始化的)
堆: 动态分配的区域 (malloc)
栈: 局部变量(初始化的和未初始化的,但不包含静态变量),局部只读变量(const)
cat /proc/进程号/maps
查看进程中地址的分布情况
readelf -S a.out 查看段的详细信息 BSS段