电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C++内存管理分析

C++内存管理分析_第1页
1/14
C++内存管理分析_第2页
2/14
C++内存管理分析_第3页
3/14
1 C++C++内存管理详解内存管理详解内存管理详解 ------------------GUOJIEGUOJIE 结合论坛贴子与自学相关知识结合论坛贴子与自学相关知识整理于整理于07.08.1207.08.12 1、 内存分配方式内存分配方式 内存分配方式有三种内存分配方式有三种:: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内存分配。程序在运行的时候用 malloc 或 new申请任意多少的内存,程序员自己负责在何时用 free 或 delete 释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。 附: C ++程序的内存格局: 内存区域 存放的数据 全局数据区 data area 全局变量 , 静态变量 , 常量 代码区 code area 所有类成员函数和非成员函数代码 栈区 stack area 为函数运行而分配的局部变量 , 函数参数 , 返回数据 , 返回地址等 堆区(自由存储区)heap area 以上余下的空间都被用作堆区 2、常见的内存错误及其对策常见的内存错误及其对策 发生内存错误是件 非常麻 烦 的事 情 。编译器不 能 自动发现 这些错误,通 常是在程序运行时才 能 捕 捉 到 。而这些错误大 多没 有明 显 的症 状 ,时隐 时现 ,增 加 了改 错的难 度 。 常见的内存错误及其对策如下: * 内存分配未 成功 ,却 使用了 它 。 编程新 手 常犯 这种错误,因 为他 们没 有意识到 内存分配会 不 成功 。 常用解决办 法 是: 在使用内存之 前 检 查 指针 是否 为NULL。 如果 指针 p 是函数的参数,那 么 在函数的入 口 处用 assert(p!=NULL)进 行检查 。 如果 是用 malloc 或 new 来 申请内存,应 该 用 if(p==NULL) 或 if(p!=NULL)进 行防 错处理。 * 内存分配虽 然 成功 ,但是尚 未 初 始 化 就引 用它 。 犯 这种错误主 要 有两 个起 因 : Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only. 2 一是没有初始化的观念; 二是误以为内存的缺省初值全为零,导致引用初值错...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C++内存管理分析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部