- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言的内分配详解
动态内存分配 堆内存分配 堆内存的分配与释放 下面是关于new 操作的说明 1、new运算符返回的是一个指向所分配类型变量(对象)的指针。对所创建的变量或对象,都是通过该指针来间接操作的,而动态创建的对象本身没有名字。 2、一般定义变量和对象时要用标识符命名,称命名对象,而动态的称无名对象(请注意与栈区中的临时对象的区别,两者完全不同:生命期不同,操作方法不同,临时变量对程序员是透明的)。 3、堆区是不会在分配时做自动初始化的(包括清零),所以必须用初始化式(initializer)来显式初始化。new表达式的操作序列如下:从堆区分配对象,然后用括号中的值初始化该对象。 动态数组举例 (1) (本小题10分)读懂如下程序: #include iostream.h #include math.h double TriangleArea( ) { int i; double dTArea; 7 double* pds = new double[5]; 8 if (!pds) 9 { cout Error memory allocation!endl; 10 return -1; 11 } pds[0]=0; for(i=1;i4;i++) { cout the side is:; cin pds[i]; pds[0]+=pds[i]/2; } pds[4]= pds[0]; for(i=1;i4;i++) pds[0] *= ( pds[4] - pds[i]); dTArea=sqrt(pds[0]); 23 delete []pds; return dTArea; } 指针数组和数组指针 指针类型: (1)int*ptr;//指针所指向的类型是int (2)char*ptr;//指针所指向的的类型是char (3)int**ptr;//指针所指向的的类型是int* (也就是一个int * 型指针) (4)int(*ptr)[3];//指针所指向的的类型是int()[3] //二维指针的声明 指针数组 一个数组里存放的都是同一个类型的指针,通常我们把他叫做指针数组。 比如 int * a[2];它里边放了2个int * 型变量 . int * a[2]; a[0]= new int[3]; a[1]=new int[3]; delete a[0]; delete a[1]; 注意这里 是一个数组,不能delete [] ; 数组指针 一个指向一维或者多维数组的指针. int * b=new int[10]; 指向一维数组的指针b ; 注意,这个时候释放空间一定要delete [] ,否则会造成内存泄露, b 就成为了空悬指针 int (*b2)[10]=new int[10][10]; 注意,这里的b2指向了一个二维int型数组的首地址. 注意:在这里,b2等效于二维数组名,但没有指出其边界,即最高维的元素数量,但是它的最低维数的元素数量必须要指定!就像指向字符的指针,即等效一个字符串,不要把指向字符的指针说成指向字符串的指针。 int(*b3) [30] [20]; ?//三级指针――指向三维数组的指针; int (*b2) [20]; ? ? //二级指针;――指向二维数组的指针; b3=new int [1] [20] [30]; b2=new int [30] [20]; 删除这两个动态数组可用下式: delete [] b3; ?//删除(释放)三维数组; delete [] b2; ?//删除(释放)二维数组; 7.1.2 堆对象与构造函数 正因为构造函数可以有参数,所以new后面类(class)类型也可以有参数。这些参数即构造函数的参数。 但对创建数组,则无参数,并只调用缺省的构造函数。见下例类说明: 7.1.3 浅拷贝与深拷贝 缺省拷贝构造函数:用一个对象的内容初始化另一个同类对象,也称为缺省的按成员拷贝,不是对整个类对象的按位拷贝。这种拷贝称为浅拷贝。 class CGoods{ char *Name; //不同与char Name[21] ? int Amount; float Price; float Total_value; public: CGoods(){Name=new char[21];} CGoods(CGoods other){ //缺省拷贝构造内容:
您可能关注的文档
- 500吨蔬批发市场新建项目可行性研究报告.doc
- 4市场调问卷设计.ppt
- 4S店汽车品营销培训_131页.pptx
- 4S汽车-销售技能赛_决赛集训营-授课版.pptx
- 51单片机实现子时钟功能_1602液晶显示.doc
- 5思埠众创空间与政府作协议草案2016604.doc
- 4S汽车-年度Q1市总结及Q2市场计划VS.pptx
- 5机械零设计概论.ppt
- 6_武汉后湖花园完可行性研究报告.docx
- 779万高档纺织面料项目建议书.doc
- 2024年全球及中国无线充电氛围灯行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国芦苇吸油纸行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国汽车用合金电阻行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国高流量褶式滤芯行业头部企业市场占有率及排名调研报告.docx
- 2025年日照航海工程职业学院高职单招职业适应性测试近5年备考题库及答案解析.docx
- 2024-2030全球连续电去离子纯水系统行业调研及趋势分析报告.docx
- 2024-2030全球变速箱油泵模块行业调研及趋势分析报告.docx
- 2024年全球及中国语音有哪些信誉好的足球投注网站引擎行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国中温锡膏行业头部企业市场占有率及排名调研报告.docx
- 2024年全球及中国环境氧气发生器行业头部企业市场占有率及排名调研报告.docx
最近下载
- 中医养生预防脑血管疾病的措施(3).pptx
- 教育部2024年专项任务项目(高校辅导员研究)申请评审书《增强高校辅导员与学生谈心谈话的针对性和实效性研究》.docx VIP
- YBJ-PS03-2004埋地无压预制混凝土排水圆形管管基及接口.pdf
- 家校社协同育人教联体典型案例(幼小中).doc
- 智慧教育双师课堂解决方案.pdf
- DL∕T 1949-2018 -火力发电厂热工自动化系统电磁干扰防护技术导则.pdf
- 2023云南昆明空港投资开发集团招聘7人考前自测高频考点模拟试题(共500题)含答案详解.docx
- 营销三大法宝-销售带动配合-PPT课件.ppt
- 人教版本历史七下第3课(开元盛世)课件3.ppt
- 2025考研英语一真题及答案.pdf
文档评论(0)