linux下内存管理学习心得(一)
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操作系统每个进程的地址空间都是独立的,其实这里的独立说得是物理空间上得独立。
linux内存管理学习心 相关文章:
- linux下内存管理学习心得(二)(11-23)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)