分配内存空间(C++Primer中文(第四版)).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.11new和delete表达式(P150) 1.动态创建对象的初始化 #include iostream #include string #include new using namespace std; int main() { int i(1024); int *pi=new int(1024); string s(10,9); string *ps=new string(10,9); coutiendl; cout*piendl; coutsendl; cout*psendl; delete pi; delete ps; return 0; } 2.动态创建对象的默认初始化 区别: 1 string *ps=new string;//initialized to empty string string *ps=new string();//initialized to empty string 2. int *ps=new int; //pi points to an uninitialized int int *ps=new int(); //pi points to an int value-initialized to 0 cls *pc=new cls(); // pc points to a value-initialized object of type cls #include iostream #include string #include new using namespace std; int main() { int *pi1=new int; int *pi2=new int(); string *ps1=new string; string *ps2=new string(); cout*pi1endl; //-842150451 cout*pi2endl; //-842150451 与书上不符合 cout*ps1endl; //empty cout*ps2endl;// empty delete pi1; delete pi2; delete ps1; delete ps2; return 0; } 说明:()表示为动态对象初始化 3耗尽内存 后面6.13抛出异常 4.撤销动态创建的对象 如果分配空间不是new分配的,该指针使用delete是错误的 #include iostream #include string #include new using namespace std; int main() { int i; int *p=i; int *pi=new int(1024); string *ps=new string(10,9); coutiendl; cout*piendl; cout*psendl; delete p; //error delete pi; delete ps; return 0; } 5零值指针的删除 如果指针为0,删除时合法的。 int *ip=0 delete ip; #include iostream #include string #include new using namespace std; int main() { int *p=0; coutpendl; delete p; return 0; } 6.在delete之后,重设p的值 p被delete后,位置为0;不指向任何对象 #include iostream #include new using namespace std; int main() { int *p=new int(); coutpendl; delete p; coutpendl; return 0; } 7.const对象的动态分配和回收 const int *pc=new const int(1024); 8.删除const对象 delete pc; //下面程序有问题 #include iostream #include new using namespace std; int main() { const int *p= new const int(1024); coutpendl; delete p; return 0; } 18.1优化内存分配(P632) 18.1.1 C++中的内存分配

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档