Chinaunix首页 | 论坛 | 博客
  • 博客访问: 153945
  • 博文数量: 15
  • 博客积分: 2146
  • 博客等级: 大尉
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-20 21:20
文章分类

全部博文(15)

文章存档

2011年(6)

2008年(9)

我的朋友

分类: C/C++

2008-03-27 23:00:32

内存分配方式
内存分配方式有三种:
(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的
整个运行期间都存在。例如全局变量,static 变量。
注释:这和操作系统中讲到的静态地址重定位一样,它要求代码在编译开始前就要准备
给出具体的地址空间。
(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函
数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效
率很高,但是分配的内存容量有限。
注释:在栈(stack)上操作由操作系统来实现和完成,程序在执行完成时,由操作系统
去收回给程序分配的空间
(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多
少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由我们
决定,使用非常灵活,但问题也最多。
注释:这是我们经常犯错误的地方,可能由于忘记用free 或delete 释放内存以致造成
内存泄露,最后可能导致操作系统由于内存空间不够而出现问题。建议看一下IBM公司
关于这部分的详细讲解。
阅读(1576) | 评论(1) | 转发(0) |
0

上一篇:没有了

下一篇:极限编程

给主人留下些什么吧!~~

chinaunix网友2008-10-20 10:59:33

梦,不努力,梦依然是梦,这句话好!