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

免费网址导航网站建设深圳做软件开发的公司

免费网址导航网站建设,深圳做软件开发的公司,上海浦东设计网站建设,网站建设创业公司策划方案new/delete 与 malloc/free 的区别? 分配内存的位置 malloc是从堆上动态分配内存new是从自由存储区为对象动态分配内存。自由存储区的位置取决于operator new的实现。自由存储区不仅可以为堆,还可以是静态存储区,这都看operator new在哪里为…

new/delete 与 malloc/free 的区别?

  1. 分配内存的位置
    1. malloc是从上动态分配内存
    2. new是从自由存储区为对象动态分配内存。自由存储区的位置取决于operator new的实现。自由存储区不仅可以为堆,还可以是静态存储区,这都看operator new在哪里为对象分配内存
  2. 是否可以被重载
    1. opeartor new 、operator delete 可以被重载
    2. malloc、free则不能重载
  3. 内存分配
    1. malloc内存分配成功后返回void*,然后再强制类型转换为需要的类型
      1. malloc内存分配失败后返回 NULL
    2. new操作符分配内存成功后返回与对象类型相匹配的指针类型;因此new是符合类型安全的操作符
      1. new分配内存失败则会抛异常 std::bad_alloc
      2. 如果加上std::nothrow关键字`,UserInfo* info = new (std::nothrow) UserInfo; // new 就不会抛出异常而是会返回空指针
  4. 分配内存的大小的计算
    1. 使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算
    2. malloc则需要显式地指出所需内存的尺寸
  5. 使用场景
    1. new/delete 适用于C++对象,它们会自动处理对象的构造和析构。
    2. malloc/free 更通用,可以在C++中使用,也可以在C中使用,但需要手动管理对象的构造和析构。
// 使用 malloc 分配内存 并 强制类型转换
UserInfo* user = static_cast<UserInfo*>(malloc(sizeof(UserInfo)));// 构造对象
new (user) UserInfo("Alice", 25);// 使用对象指针调用成员函数
std::cout << "User's age: " << user->getAge() << std::endl;// 手动调用析构函数
user->~UserInfo();// 释放内存
free(user);
http://www.yayakq.cn/news/838972/

相关文章:

  • 网站设计 cdc四川住房建设厅网站首页
  • 昆山建设局网站wordpress国内中文主题
  • 网站建设方案保障措施wordpress搜索关键词
  • 导购网站怎么建wordpress 功能模块
  • 做网站没有高清图片怎么办怎样在网站做推广
  • 安康市网站建设公司中山市建设工程
  • 网络推广专员招聘短视频seo营销系统
  • 天津网站建设包括哪些换服务器wordpress升级
  • 三线建设网站需要前置审批的网站
  • 和网站签约新闻网站首页做很多个关键词
  • 建设大厦网站官网seo怎么做
  • 淘宝网站是怎么做的响应式网站建设
  • 武平县天恒建设投资集团公司网站集团网站品牌建设特点
  • 曹县有没有做网站天眼查 个人查询
  • 四川做网站设计的公司电子商务网站 技术方案
  • 网站开发费用报价热点新闻事件100字
  • 鹿泉建设网站高校后勤网站建设
  • 四川网站建设公司电话装修免费出效果图
  • 江苏省住房和城乡建设局网站首页重庆网站建设子沃科技公司
  • 怎样自己做网站模板公司企业做网站怎么做
  • 网站开发获客渠道十大门户网站有哪些
  • 用php做网站上传图片的代码wordpress the_tags
  • 怎么建设营销型网站网站开发公司起名字
  • 莱芜网站优化团队安阳seo
  • 常德网站建设网站原型图大小
  • 商城网站设计公司vi设计说明
  • 合肥市做外贸网站的公司站长工具权重
  • 怎样创建公司网站营销型网站建设找哪家
  • 如何网站p2p做网站
  • 学校网站用途南阳网站开发公司