代码
#include <stdio.h>
#define X 1024
int a = 1;
const int b = 1;
void main(){
static int c = 3;
int d = 4;
int *p = (int*)malloc(sizeof(int)*10);
a = b + c + d;
for(int i = 0; i<10;i++){
p[i] = X + i;
}
printf("hello\n");
}
只读代码数据区
注意, 这里是代码和数据区
a = b + c + d;
for(int i = 0; i<10;i++){
p[i] = X + i;
}
printf("hello\n");
读写数据
这里存放的是全局变量
const int b = 1;
static int c = 3;
heap
malloc(sizeof(int*)*10);
共享库
比如printf的代码
用户栈
函数的局部变量, 函数调用信息
int d = 4;
int *p
注意
可能有的同学看到只读代码数据区和用户栈时比较迷糊, 为什么在栈中的p会在代码区找到, 这其实有一个符号引用, 代码块里的变量只是对实际变量的一个引用 , 知道真正运行代码的时候, 这个符号会被解析为一个地址指针, 这个指针指向的是栈中的地址











网友评论