动态栈中内存布局
2016-06-14 16:25
246 查看
动态栈中内存布局
1.1进程中内存布局1.2 函数调用中栈内存
Main()->int print_out(int begin, int end)调用栈
函数调用时:
Main函数首先压入:print_out的实参1,2;接受返回值的地址(如果没有返回值?),main的ebp
print_out的Ebp =(main)Esp,Esp后移动建立新print_out函数栈
1.3函数栈中变量的位置(ubuntu/android)
1.普通局部变量
不同类型的变量,由定义的位置顺序,从地址高到底排列
int a |
b... |
有数组的情况
int d[1]...d[0] |
int b[1] |
int b[0] |
int a |
char *c |
相同类型普通变量,相邻分配,分配地址与定义顺序相反
数组在全部在高位地址,相同类型数组相邻,并分配地址与定义顺序相反。
2.if/switch等有作用域/生命周期 局部变量位置
与普通全局变量相同,以相同的规则穿插在普通变量的地址中间
(不同区的if中的局部变量,可能会共用地址)
有Class/Struct的情况
Class对象在定义变量的穿插,可能再array之前
3.for中定义的局部变量,每次循环地址不变
相关文章推荐
- mybatis创建自己的分页插件http://wiki.jikexueyuan.com/project/mybatis-in-action/mybatis-paging.html
- Android内存泄漏分析实例
- DbUtils组件使用
- java_object的简单使用详解
- Eclipse快捷键大全
- Ubuntu下编译FFmpeg
- 工控硬件
- phpmyadmin允许空密码登陆
- rabbitmq+haproxy+keepalived实现高可用集群搭建
- hadoop namespace
- 获取一个数字的最高位的几种算法。
- 【Java多线程】ExecutorService与ExecutorCompletionService
- [leetcode] 190. Reverse Bits
- sqlserver字段相同情况下另一字段实现自动增长
- IOS Dev Intro - Grand Central Dispatch of Thread Series
- Dynamics CRM 产品视图列上自带按钮的隐藏
- JSP基础
- cocos2d-x-3.0从零到2048游戏开发
- android下拉菜单spinner的使用方法
- HttpClient简单请求和session的保持