Linux C 内存管理

2020-05-14  本文已影响0人  LiuJP

32位操作系统内存最大空间为 2^32 = 210*2102^104 = 4GB;

64位操作系统的内存分布

image image.gif

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

64位操作系统

int 占4字节

指针 占8个字节

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

函数也在栈中占有地址;

image image.gif

自由可分配内存:

image image.gif

静态变量

全局变量

常量

都存储在数据段;

image image.gif

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

地址的运算:

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

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

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

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

但是代码段的地址是不可以修改的。

上一篇 下一篇

猜你喜欢

热点阅读