您的位置:首页 > 运维架构 > Linux

Linux C 内存管理

2015-10-18 21:24 477 查看
32位操作系统内存最大空间为 2^32 = 2^10*2^10*2^10*4 = 4GB;

64位操作系统的内存分布



内存栈里存放程序运行的状态;

64位操作系统

int 占4字节

指针 占8个字节

在声明变量时,gcc 编译器,会把类型相同的变量放在连续的地址空间;

函数也在栈中占有地址;



自由可分配内存:



静态变量

全局变量

常量

都存储在数据段;



代码段,代码段保存源代码的地址,

地址的运算:

指针偏移运算是运算速度最快的

指针变量,可以去替换指针常量,

数组是一种指针常量,可以用一个指针变量去表示;

堆和栈的内存地址是可以修改的,

但是代码段的地址是不可以修改的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: