内存
###内存的属性
1,大小
2,位置
#include <stdio.h>
int main(int argc, char **argv)
{
int a;
printf("%p\n",&a);
printf("%p\n",main);
return 0;
}
运行的结果为
0x7ffe4316ecd4
0x55dee6e106aa
若a为全局变量呢?
#include <stdio.h>
int a;
int main(int argc, char **argv)
{
printf("%p\n",&a);
printf("%p\n",main);
return 0;
}
运行结果为
0x557f6fe23014
0x557f6fc2264a
我们发现这次地址相差不大了
内存分布
----------------------4g
内核空间 应用程序不允许访问
---------------------------------3g
栈空间 局部变量 RW
运行时的堆空间 malloc
全局数据空间 (初始化的,未初始化的)全局变量 RW
只读数据断 " " R
代码段 code(只读) R
有一段系统保留空间,不允许访问
----------------------------------0x00
char *buf = "hello wrold";
//""是一个只读空间;
//不能进行写操作;