进程的内存空间

原创 2013年12月04日 23:20:52

 1代码区/段:存储函数的代码,函数指针就是函数在代码区的地址(首地址)。
 2全局区:   初始化的全局变量,static变量,读写都可以。
 3 BSS区:   未初始化的全局区。BSS段在main()执行之前会自动清零。
 4 堆区 :   也叫自由区,程序员全权掌控堆区。容易引发内存泄漏malloc(),free().
 5 栈区 :   系统自动管理,函数的参数,局部变量(非static).
 6 只读常量区:字符串""的字面值,const修饰的全局常量,在只读常量区。不能修改。有些资料把常量区和代码区放一起。


#include<stdlib.h>

int i1 = 1; //全局
int i2; //BSS
static int i3 = 3;//全局
const int i4 = 4;//只读常量
static const int i44 = 44;//只读常量

void fa(int i5) //栈区
{
	int i6 = 6;  //栈区
	static int i7 = 7; //全局区
	const int i8 = 8;  //栈区,虽然为const,本质是可以读写
	int* pi = malloc(4); //堆
	char *s1 = "abc";  //s1在栈区,指向只读常量区
	char s2[] = "abc"; //栈区开辟空间,s2为首地址
}

段错误:
1 使用了没有映射的虚拟地址,比如NULL
2 对内存执行了没有权限的操作,比如修改只读区。

char *s1 = "abc"; //s1在只读区
*s1 = 'e';   //修改只读区引发运行时段错误

进程使用的内存空间分布情况

bug fixed 系列之二 : 进程内存空间分布情况 分类: 3:bug 分析与解决 2014-01-24 15:01 6人阅读 评论(0) 收藏 举报 本文章为原创,欢迎交流,欢迎转...
  • haiross
  • haiross
  • 2014年01月24日 15:52
  • 5135

程序运行时的内存空间分布

我们在写程序时,既有程序的逻辑代码,也有在程序中定义的变量等数据,那么当我们的程序进行时,我们的代码和数据究竟是存放在哪里的呢?下面就来总结一下。 一、程序运行时的内存空间情况 其实在程序运行...
  • ljianhui
  • ljianhui
  • 2014年03月21日 01:33
  • 21180

进程地址空间与虚拟存储空间的理解

在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。 一 早期的内存分配机制 在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,...
  • ljabclj
  • ljabclj
  • 2015年03月09日 15:19
  • 2154

Linux用户进程内存空间

经常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。 VIRT , Virtual Image (kb) RES, Resident size (kb) S...
  • godleading
  • godleading
  • 2014年01月23日 14:41
  • 1668

bug fixed 系列之二 : 进程内存空间分布情况

本文章为原创,欢迎交流,欢迎转载;转载请勿篡改内容,并且注明出处,谢谢! 本文重点论述进程内存的空间布局,目的是明白在程序运行时,即执行code时,具体是操作的那块内存。 ...
  • zhh_steven
  • zhh_steven
  • 2014年01月24日 15:01
  • 752

用户进程内存空间

转载的原文地址:http://blog.jobbole.com/45733/ 经常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。 VIRT , V...
  • fengyuxili
  • fengyuxili
  • 2015年12月22日 14:31
  • 164

进程使用的内存空间分布情况

bug fixed 系列之二 : 进程内存空间分布情况 分类: 3:bug 分析与解决2014-01-24 15:01 6人阅读 评论(0)收藏 举报 本文章为原创,欢迎交流,欢迎...
  • u010154760
  • u010154760
  • 2015年04月07日 15:36
  • 594

Linux用户进程内存空间

原文出处: PerfGeeks    经常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。 VIRT , Virtual Image (kb) ...
  • guofatfat
  • guofatfat
  • 2014年03月17日 18:16
  • 690

Linux 用户进程内存空间详解

经常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。VIRT , Virtual Image (kb)RES, Resident size (kb)SHR,...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2013年06月08日 09:19
  • 2608

进程内存空间的划分(代码区,全局区,BSS段,栈区,堆区,只读常量区)

进程的内存空间划分:6个部分代码区、只读常量区、全局区、BSS段、堆、栈 代码区 – 程序的代码(以函数的形式)存入代码区,函数指针就是函数在代码取得地址,代码区 是 只读区域. 只读常量区...
  • dsanmux
  • dsanmux
  • 2015年08月18日 12:03
  • 1259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:进程的内存空间
举报原因:
原因补充:

(最多只允许输入30个字)