c语言内存分配之局部变量内存分配

局部变量内存分配情况:

局部变量保存在栈中(保存地址由高地址到低地址)。

先定义先分配内存。

   

      



由此可见局部变量分配空间的顺序和变量的声明顺序直接相关,同时按照内存地址由高到低的顺序进行空间分配.

先定义,先分配,地址由高到低


数组越界问题(看图3和图4


     


由于首先声明的是数组a[4],于是在高位上优先分配a,低位上分配i,因此可以发现这是并没有出现&i = &a[4]的情况。此时要是执行的话程序就不是假死了,直接是内存出错。




由此可以发现&i =&a[4],因为先声明的是i,然后才是a[4],故i处于高位,a处于低位,但是越界后a[4]来到高位,覆盖i。




























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章