C++编程中内存分配形式是什么?

 我来答
C之
2010-07-22 · TA获得超过457个赞
知道答主
回答量:89
采纳率:0%
帮助的人:132万
展开全部
(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。

(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。
Ja初学者va
2010-07-22 · TA获得超过212个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:119万
展开全部
Linux中,C++内存分配方式有三种:

(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。

(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

常见的内存错误:
* 内存分配未成功,却使用了它。
* 内存分配虽然成功,但是尚未初始化就引用它。
* 内存分配成功并且已经初始化,但操作越过了内存的边界。 (例如在使用数组时经常发生下标“多1”或者“少1”的操作。特别是在for循环语句中,循环次数很容易搞错,导致数组操作越界。)
* 忘记了释放内存,造成内存泄露。
* 释放了内存却继续使用它。

参考资料: http://tech.ccidnet.com/art/302/20060925/908979_1.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
warmwormn
2010-07-22 · TA获得超过737个赞
知道小有建树答主
回答量:1694
采纳率:0%
帮助的人:1337万
展开全部
这么高深的问题,应该到操作系统里去问啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式