C++快速入门 第三十三讲:动态的内存管理


到目前为止,所讲解的每个示例程序在完成它的任务时所使用的内存空间都是固定不变的。不能在程序运行期间动态增加或减少内存空间(即静态内存)。

在很多时候,需要存储的数据量到底有多大在事先往往是一个未知数,想要处理好这类情况,就需要在C++程序里使用动态内存。

动态内存由一些没有名字、只有地址的内存块构成,那些内存块是在程序运行期间动态分配的。他们来自一个由标准C++库替你管理的大池子(内存池),从内存池申请一些内存需要用到new语句,它将根据你提供的数据类型分配一块大小适当的内存。

new语句返回的内存块很可能充满“垃圾”数据,所以我们通常先往里边写一些东西覆盖,再访问它们,或者在类直接写一个构造器来初始化。

在使用动态内存时,最重要的原则是每一条new语句都必须有一条与之配对的delete语句,否则将导致内存泄漏。

delete语句只释放给定指针变量正指向的内存块,不影响这个指针。在执行delete语句之后,那个内存块被释放了,但指针变量还依然健在。

实例:动态内存管理

1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 class Cpany 6 ; 14 Cpany::Cpany(string theName)//基类构造函数实现 15 18 void Cpany::printInfo() 19 22 23 class TechCpany:public Cpany 24 ; 32 TechCpany::TechCpany(string theName,string product):Cpany(theName)//子类构造函数实现 33 36 void TechCpany::printInfo() 37 40 41 int main() 42


上一篇:C++快速入门 第三十二讲:assert函数和捕获异常

下一篇:C++快速入门 第三十四讲:动态数组


C/C&#x2B;&#x2B;
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图