栈区内存的空间分配方式
1、栈区内存的空间分配方式,默认先使用高地址处的空间,再去使用低地址处的空间。并且数据与数据之间是留有空白区域的,这个空白区域的大小取决于编译器。
注意,这里要与大小端存储区分开,大小端存储决定的是单个数据内部字节的排列顺序 ,大端是字节由低地址向高地址排列,小端是字节由高地址向低地址排列,排序单位是单个字节。
而栈区内存分配次序的操作单位是单个数据,也就是在栈区中,数据的排列顺序统一都是按照数据的定义次序从高地址向低地址排列。
2、但是,像数组,结构体这样的复合数据类型,内部的数据随着下标的增长,地址是由低到高变化的。
3、因此如图,数组在发生访问越界时,其实就是在向高地址铺设数据,所以就及其容易影响到之前定义的数据。