深入理解计算机系统

[c/c++]1.内存储存空间布局

2020-02-15  本文已影响0人  MachinePlay

历史沿袭至今,C程序一直由下列几部分组成:

内存布局

image.png
   int maxcount = 99;

•未初始化数据段。通常将此段称为bss段,这一名称来源于早期汇 编程序一个操作符,意思是“由符号开始的块”(block started by symbol),在程序开始执行之前,内核将此段中的数据初始化为0或空 指针。函数外的声明:

    long sum[1000];

使此变量存放在非初始化数据段中。

这种典型的内存布局有一个比较有趣的地方,实际上栈向低层地址不断增长,动态数据会向高层地址增长,只要你的程序足够糟糕,例如用无止境的递归和不断抢占堆可用的空间,这两个货始终会碰面,这将是一件非常糟糕的事情。这是一种严重的错误,这种情况操作系统说它内存不足时,例如Windows臭名招嘱的蓝屏提示...!!

上一篇 下一篇

猜你喜欢

热点阅读