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

多维字符串数组的初始化动态内存分配VIP免费

多维字符串数组的初始化动态内存分配_第1页
1/7
多维字符串数组的初始化动态内存分配_第2页
2/7
多维字符串数组的初始化动态内存分配_第3页
3/7
编程学习-二维字符串数组的初始化-动态内存分配 动态内存分配 1.堆内存分配 : C/C++定义了 4个内存区间:代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆 (heap)区或自由存储区(free store)。 堆的概念: 通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的 大小,从而系统在适当的时候为他们分配确定的存储空间。这种内存分配称为静态存储分配; 有些操作对象只在程序运行时才能确定,这样编译时就无法为他们预定存储空间,只能在程序运 行时,系统根据运行时的要求进行内存分配,这种方法称为动态存储分配。所有动态存储分配都在堆 区中进行。 当程序运行到需要一个动态分配的变量或对象时,必须向系统申请取得堆中的一块所需大小的存贮空 间,用于存贮该变量或对象。当不再使用该变量或对象时,也就是它的生命结束时,要显式释放它所 占用的存贮空间,这样系统就能对该堆空间进行再次分配,做到重复使用有限的资源。 2.堆内存的分配与释放 堆空间申请、释放的方法: 在 C++中,申请和释放堆中分配的存贮空间,分别使用 new和 delete的两个运算符来完成, 指针变量名 =new 类型名(初始化式); delete 指针名; 例如:1、 int *pi=new int(0); 它与下列代码序列大体等价: 2、int ival=0, *pi=&ival; 区别:pi所指向的变量是由库操作符new()分配的,位于程序的堆区中,并且该对象未命名。 堆空间申请、释放说明: ⑴.new运算符返回的是一个指向所分配类型变量(对象)的指针。对所创建的变量或对象,都是通过 该指针来间接操作的,而且动态创建的对象本身没有名字。 ⑵.一般定义变量和对象时要用标识符命名,称命名对象,而动态的称无名对象(请注意与栈区中的临 时对象的区别,两者完全不同:生命期不同,操作方法不同,临时变量对程序员是透明的)。 ⑶.堆区是不会在分配时做自动初始化的(包括清零),所以必须用初始化式(initializer)来显式初 始化。new表达式的操作序列如下:从堆区分配对象,然后用括号中的值初始化该对象。 3.堆空间申请、释放演示: ⑴.用初始化式(initializer)来显式初始化 int *pi=new int(0); ⑵.当 pi生命周期结束时,必须释放pi所指向的目标: delete pi; 注意这时释放了 pi所指的目标的内存空间,也就是撤销了该目标,称动态内存释放(dynamic memory deallocation),但指针 pi本身并没...

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

碎片内容

多维字符串数组的初始化动态内存分配

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