变量在内存中的位置
浏览:2972次 出处信息
进程的逻辑内存空间
共享库和 mmap 内存映射
数据段 (全局static和本地static,全局变量)
代码段
堆(malloc ,引用)
栈 (本地变量,所以这个会是个随机数)
测试用程序
#include <stdio.h> #include <stdlib.h> #include <unistd.h> static int static_glob = 0; int int_glob = 0; int main() { int int_local; static int static_local = 0; int *pa = malloc(sizeof(int)); *pa = 0; printf("local int %p\n", &int_local); printf("glob int %p\n", &int_glob); printf("glob static %p\n", &static_glob); printf("local static %p\n", &static_local); printf("local pa %p\n", pa); while(1) sleep(1); return 0; } </unistd.h></stdlib.h></stdio.h>
proc 下的进程 Id 下的 maps 文件可以见到内存的分配
heap 堆
stack 栈
数据区
代码区之类
$ cat /proc/13458/maps 007a6000-007a7000 r-xp 00000000 00:00 0 [vdso] 00c84000-00ca0000 r-xp 00000000 08:06 914742 /lib/i386-linux-gnu/ld-2.13.so 00ca0000-00ca1000 r--p 0001b000 08:06 914742 /lib/i386-linux-gnu/ld-2.13.so 00ca1000-00ca2000 rw-p 0001c000 08:06 914742 /lib/i386-linux-gnu/ld-2.13.so 00e86000-00fe0000 r-xp 00000000 08:06 914755 /lib/i386-linux-gnu/libc-2.13.so 00fe0000-00fe1000 ---p 0015a000 08:06 914755 /lib/i386-linux-gnu/libc-2.13.so 00fe1000-00fe3000 r--p 0015a000 08:06 914755 /lib/i386-linux-gnu/libc-2.13.so 00fe3000-00fe4000 rw-p 0015c000 08:06 914755 /lib/i386-linux-gnu/libc-2.13.so 00fe4000-00fe7000 rw-p 00000000 00:00 0 08048000-08049000 r-xp 00000000 08:07 132093 /home/fukai/C/4 08049000-0804a000 r--p 00000000 08:07 132093 /home/fukai/C/4 0804a000-0804b000 rw-p 00001000 08:07 132093 /home/fukai/C/4 09757000-09778000 rw-p 00000000 00:00 0 [heap] b76ff000-b7700000 rw-p 00000000 00:00 0 b7711000-b7714000 rw-p 00000000 00:00 0 bfd61000-bfd82000 rw-p 00000000 00:00 0 [stack]
程序执行的结果
$ ./4 local int 0xbfd810b8 stack 栈 glob int 0x804a024 data 全局 glob static 0x804a028 data 全局static local static 0x804a02c data 本地static local pa 0x9757008 heap 堆 引用
建议继续学习:
- Axure之变量的使用 (阅读:4180)
- 从shell中向awk传递变量实例 (阅读:3592)
- 深入PHP使用技巧之变量 (阅读:3550)
- c语言全局变量和局部变量问题汇总 (阅读:2687)
- Linux的shell变量 (阅读:2675)
- PHP的可变变量名 (阅读:2235)
- 详解Linux bash中的变量 (阅读:1994)
- PHP 中对变量unset,可以销毁变量中的资源 (阅读:1951)
- 如何获取一个变量的名字 (阅读:1871)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
文章信息
- 作者:扶凯 来源: 扶凯
- 标签: 变量
- 发布时间:2011-07-24 15:02:04
建议继续学习
近3天十大热文
- [65] Oracle MTS模式下 进程地址与会话信
- [64] Go Reflect 性能
- [64] 如何拿下简短的域名
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [58] 【社会化设计】自我(self)部分――欢迎区
- [58] 图书馆的世界纪录
- [56] android 开发入门
- [55] 视觉调整-设计师 vs. 逻辑
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [46] 界面设计速成