| windows进程中的内存结构 |
| 作者:内详 来源:网络搜集 点击数:
更新时间:2008-3-31 18:12:07 |
|
|
Word-WRAP: break-word; 130:>
在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。
接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。
首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeister)。每种变量都有不同的分配方式。先来看下面这段代码:
#include <stdio.h>
int g1=0, g2=0, g3=0;
int main() { static int s1=0, s2=0, s3=0; int v1=0, v2=0, v3=0;
//打印出各个变量的内存地址
printf("0x%08x\n",&v1); //打印各本地变量的内存地址 printf("0x%08x\n",&v2); printf("0x%08x\n\n",&v3); printf("0x%08x\n",&g1); //打印各全局变量的内存地址 printf("0x%08x\n",&g2); printf("0x%08x\n\n",&g3); printf("0x%08x\n",&s1); //打印各静态变量的内存地址 printf("0x%08x\n",&s2); printf("0x%0 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
|
|
| 教程录入:yxdoor 责任编辑:yxdoor |
上一篇教程: 剖析Windows系统服务调用机制
下一篇教程: Solaris系统安全加固列表 |
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |