微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > linux下内存管理学习心得(一)

linux下内存管理学习心得(一)

时间:11-23 来源:互联网 点击:

printf("_____________________________________");

int stack_var0 = 2;

printf("Stack location:");

printf(" Initial end of stack:%p",&stack_var0);

int stack_var1 = 3;

printf(" New end of stack:%p",&stack_var1);

printf("_____________________________________");

printf("Data location:");

printf(" Address of data_var(Data Segment):%p",&data_var0);

static int data_var1 = 4;

printf(" New end of data_var(Data Segment):%p",&data_var1);

printf("_____________________________________");

printf("BSS location:");

printf(" Address of bss_var:%p",&bss_var);

printf("_____________________________________");

printf("Heap location:");

char *p = (char *)malloc(10);

printf(" Address of head_var:%p",p);

return 0;

}

运行结果如下:

呵呵,这里我们看到地址了,这个地址是虚拟地址,这些地址时怎么来的呢?其实在我们编译的时候,

这些地址就已经确定了,如下图中红线。

也就是说,我们不论我们运行a.out程序多少次这些地址都是一样的。我们知道,linux操作系统每个进程的地址空间都是独立的,其实这里的独立说得是物理空间上得独立。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top