当前位置: 首页 > news >正文

贵阳好的网站建设公司网络营销期末总结

贵阳好的网站建设公司,网络营销期末总结,网站服务器 同步备份,电商网站域名文章目录1、动态内存管理2、内存管理方式operator new operator delete3、new和delete的实现原理1、动态内存管理 C兼容C语言关于内存分配的语法#xff0c;而添加了C独有的东西。 //int* p1 (int*)malloc(sizeof(int));int* p1 new int;new是一个操作符#xff0c;C不再需… 文章目录1、动态内存管理2、内存管理方式operator new operator delete3、new和delete的实现原理1、动态内存管理 C兼容C语言关于内存分配的语法而添加了C独有的东西。 //int* p1 (int*)malloc(sizeof(int));int* p1 new int;new是一个操作符C不再需要强转类型。如果要开辟多个 //int* p2 (int*)malloc(sizeof(int) * 7);int* p2 new int[7];这个new不只是C的动态开辟方式还有独特的点。同malloc一样new没有初始化但它对于自定义类型的处理要更好。C的free就是delete。 //int* p1 (int*)malloc(sizeof(int));int* p1 new int; //int* p2 (int*)malloc(sizeof(int) * 7);int* p2 new int[7];delete p1;delete[] p2;写一个类 class A { public:A(int a 0):_a(a){cout 构造 this endl;}~A(){cout 销毁 this endl;} private:int _a; };A* pp3 (A*)malloc(sizeof(A));free(pp3);A* p3 new A(1);delete p3; malloc只是开空间free只是释放空间而new会调用构造函数和析构函数。 2、内存管理方式 new也可以初始化 int* p1 new int(10);int* p2 new int[10];int* p3 new int[10] {1, 2, 3, 4};一个是初始化一个变量一个是初始化一个数组总共10个元素第三个则是指定初始化这里初始化了4个元素。 但不能交叉使用用mallocdelete系统会抽查错误查到编译器就会出现奇怪的错误。 operator new operator delete operator new 和operator delete是 系统提供的全局函数new在底层调用operator new全局函数来申请空间delete在底层通过operator delete全局函数来释放空间。 实际上它们不是new 和 delete的重载函数。on函数调用了malloc如果调用失败就会执行用户提供的空间不足应对措施如果用户提供该措施 就继续申请否则就抛异常而od函数就是一个free在最终free前它会检查代码。 所以实际上它们就是malloc和free的封装。 int* p1 (int*)operator new(sizeof(int));int* p2 (int*)malloc(sizeof(int));malloc失败时会返回空而on会返回异常。 3、new和delete的实现原理 对于内置类型new和malloc无区别但对自定义类型有区别。new[]和delete[]实现的是连续空间的操作。 new的逻辑是先调用operator new再malloc再调用构造函数。delete的逻辑是先调用析构函数再调用operator delete也就是相当于free。 new/delete 和 malloc/free有不同的实现机制尽量不交叉使用以免出现不可控的错误。 new T[N]的原理 调用operator new[]函数在operator new[]中实际调用operator new函数完成N个对 象空间的申请在申请的空间上执行N次构造函数 delete[]的原理 4. 在释放的对象空间上执行N次析构函数完成N个对象中资源的清理 5. 调用operator delete[]释放空间实际在operator delete[]中调用operator delete来释 放空间 new一个数组编译器内部会多开四个字节的空间来存储元素个数这是在手动写了析构函数的情况下如果是自动析构函数那么编译器就会评估一下是否需要这四个字节比如类里没有对资源进行管理那么就不需要析构函数也就不会多开4个字节。 malloc/free和new/delete的共同点是都是从堆上申请空间并且需要用户手动释放。不同的地 方是 malloc和free是函数new和delete是操作符malloc申请的空间不会初始化new可以初始化malloc申请空间时需要手动计算空间大小并传递new只需在其后跟上空间的类型即可 如果是多个对象[]中指定对象个数即可malloc的返回值为void*, 在使用时必须强转new不需要因为new后跟的是空间的类型malloc申请空间失败时返回的是NULL因此使用时必须判空new不需要但是new需 要捕获异常申请自定义类型对象时malloc/free只会开辟空间不会调用构造函数与析构函数而new 在申请空间后会调用构造函数完成对象的初始化delete在释放空间前会调用析构函数完成 空间中资源的清理 结束。
http://www.dnsts.com.cn/news/82497.html

相关文章:

  • 商业网站建设常识设计网站的目的
  • dede电影网站模板免费网站建设是什么
  • 淘宝的网站怎么做定制开发小程序的公司
  • 建筑设计地图网站石家庄职业技术学院
  • 用模板建站郑州工程设计公司官网
  • 企业手机网站建设策划书西安关键词优化软件
  • 中山电商网站制作搭建网站的步骤
  • 商城网站带宽控制什么管理系统好做
  • 门户网站建设方案 ppt有什么做海报的网站吗
  • 网站上的销售怎么做的辽宁网站建设多少钱
  • 水处理设备网站建设商务定制网站
  • 网站动态设计效果seo排名软件有用吗
  • 调兵山网站网站建设的课程设计
  • 盘锦网站建设多少钱东莞市天气
  • 公司网站的服务器快速网站开发软件
  • 唐山网站制作方案网页制作文字素材
  • 刚做的网站在百度上搜不到自己做游戏需要学什么
  • 网站搭建流程青岛核酸检测最新消息
  • 太仓网站优化wordpress 过滤插件
  • 广安建设企业网站wordpress5.0.1
  • 网站合作建设方案做分析仪器推广的网站
  • 网站建设咨询公司地址server2008网站建设
  • 怎么做和美团一样的网站广州番禺职业技术学院官网
  • 中企动力做的电梯网站贵阳营销型网站建设
  • 如何制作简单的宣传片网站优化最为重要的内容是
  • 一个网站建设流程南昌做网站的公司有哪些
  • 免费个人手机网站手机网站制作哪家好
  • 开发一个网站多少钱冀icp 网站建设
  • 网站建设怎么建设青岛做网站服务商
  • 官方网站的推广策划怎么做婚纱摄影网站源码下载