Linux C 内存管理
2020-05-14 本文已影响0人
LiuJP
32位操作系统内存最大空间为 2^32 = 210*2102^104 = 4GB;
64位操作系统的内存分布

内存栈里存放程序运行的状态;
64位操作系统
int 占4字节
指针 占8个字节
在声明变量时,gcc 编译器,会把类型相同的变量放在连续的地址空间;
函数也在栈中占有地址;

自由可分配内存:

静态变量
全局变量
常量
都存储在数据段;

代码段,代码段保存源代码的地址,
地址的运算:
指针偏移运算是运算速度最快的
指针变量,可以去替换指针常量,
数组是一种指针常量,可以用一个指针变量去表示;
堆和栈的内存地址是可以修改的,
但是代码段的地址是不可以修改的。