运行程序内存分析。(c语言)

标签: 内存 分区
28人阅读 评论(0) 收藏 举报
分类:

  程序存放在硬盘中,当要执行程序时,操作系统将硬盘中的代码加载到内存,找到main函数作为程序入口,开始执行。程序执行的过程是在内存中完成的,下面说一下c程序执行中内存的管理:

可以将其分为四大分区(也可以分为五大分区):堆区(heap)。由操作系统管理,malloc/free/delete等代码建立,一般由程序员分配与释放(即申请和释放),如果程序员不释放,程序结束后可能由操作系统回收。

栈区。是由编译器自动分配和释放,存放局部变量,函数参数值等。

全局区:存放常量和全局变量,静态变量,由操作系统管理。(这个区实际上可以分为两个内存存储区,即常量区和全局区。)

程序区:即代码区,存放二进制代码。

ps:现在只讨论c语言,c++为了区分new和malloc新增自由存储区概念。

函数的执行过程中,操作系统只为其分配一个内存四区模型,即一个栈,堆,。。。。函数的调用实际上是进栈出栈的过程。



练习根据代码画出内存分析图:


查看评论

《C语言及程序设计》实践参考——用命令行运行程序

返回:贺老师课程教学链接【项目1-用命令行运行程序】下面的程序,用于复制命令行中给出的文件。请利用命令行的方式运行程序。#include #include int main(int argc,char...
  • sxhelijian
  • sxhelijian
  • 2015-05-02 11:41:57
  • 2563

C语言学习2:Windows通过命令行编译运行c程序(Hello World)及程序详解

C语言学习2:Windows通过命令行编译运行c程序(Hello World)及程序详解
  • qq_36743482
  • qq_36743482
  • 2017-11-15 15:51:16
  • 611

notepad++运行c程序

cmd /k gcc -o $(CURRENT_DIRECTORY)\$(NAME_PART).exe "$(FULL_CURRENT_PATH)" && CLS && $(CURRENT_DIREC...
  • baidu_19473529
  • baidu_19473529
  • 2017-05-22 10:58:59
  • 710

Eclipse运行C程序

这篇文章是关于Eclipse中书写C程序代码的文章.
  • zhang_ling_yun
  • zhang_ling_yun
  • 2017-10-14 21:59:26
  • 670

在 记事本上 写了个C语言 数字钟程序 怎么运行 在哪里运行

cid=7497C46991962334EBE62CD8A838BA92479CBF11&t=2&fmt=-1&redirect=no|||先把它的扩展名改为.c 下载dev-c 用dev-c打开该文...
  • bugrnm
  • bugrnm
  • 2008-10-20 09:21:00
  • 3312

C语言在MAC的Terminal 里面运行方法

若要在 Mac 的终端中编译并运行 C 源代码,你首先需要安装 Command Line Tools,里面包含有 GCC 编译器。安装方法为:打开终端,输入 gcc。 如果你没有安装 Command...
  • PrincessKenny
  • PrincessKenny
  • 2016-10-11 09:43:18
  • 8650

图解eclipse中执行C语言程序

现在上课讲C语言的课,因为非常不喜欢VC++,听说eclipse也可以做C的程序,就找了一下配置方法。首先要有以下三样东西:①JDK1.5,因为eclipse运行环境需要,呵,没办法②eclipse+...
  • ryukengun
  • ryukengun
  • 2008-09-08 17:16:00
  • 10312

NotePad++编译运行C程序的示例

Notepad++搭载MINGW编译运行C程序。 保存了命令,但是从菜单中是找不到输入的命令的;然后到Notepad重装或是换电脑后,又要弄半天来搞...... 于是把这些录下来,便于以后自己使用,也...
  • baidu_24190413
  • baidu_24190413
  • 2015-02-21 14:46:32
  • 7488

c语言程序的运行

13.4  C语言程序的运行 在嵌入式系统中,程序最终是要放置在内存中运行的,程序的几个段,最终会转化为内存中的几个区域。C语言可执行程序的内存布局如图13-5所示。 图13-5  C语言可执行程...
  • ljl19880125
  • ljl19880125
  • 2013-07-11 22:47:06
  • 979

C语言编译执行过程详解

认识C编译执行过程,是C学习的开端。 简单说C语言从编码编译到执行要经历一下过程:   C源代码 编译---->形成目标代码,目标代码是在目标机器上运行的代码。 连接---->将目标代码与C...
  • xiaofei0859
  • xiaofei0859
  • 2016-01-21 17:43:38
  • 4609
    个人资料
    等级:
    访问量: 44
    积分: 20
    排名: 213万+
    文章分类
    文章存档
    最新评论