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

malloc、new、operator new的区别

class A { public: //构造函数 A() { cout << "A()" << endl; } ~A() { cout << "~A()" << endl; } private: int _a; }; int main() { A* p1 = (A*)malloc(sizeof(A) * 10); free(p1); A* p2 = new A[10]; A* p3 = (A*)operator new(sizeof(A)); delete[]p2; size_t size = 2; A* p4 = (A*)malloc(size * 1024 * 1024 * 1024 * 1024); cout << p4 << endl; try { void *p5=operator new(size * 1024 * 1024 * 1024 * 1024); cout << p5 << endl; //失败抛异常 operator delete(p5); } catch (exception& e) { cout << e.what() << endl; } return 0; }

operator new——malloc+申请空间失败抛异常

new——operator new+调用构造函数

new与malloc的区别:1、new调用构造函数,失败抛异常,而malloc失败会返回;

2、new是操作符,malloc是函数;

3、malloc用法:参数传字节数,返回值是void*,参数传字节数;new后面跟的是申请对象的类型,返回值是类型的指针。

delete与free的区别:调用析构函数清理

opertor free 与free没有区别,清除失败会直接结束程序,是因为要与operator new成对出现

注意:delete[]是删除数组 delete 删除一个

http://www.jsqmd.com/news/609984/

相关文章:

  • Buildroot自定义package
  • 横扫顶会!多模态融合+注意力机制,误差狂掉!准确率飙升!
  • 老年关怀:AI Agent作为健康与生活伴侣
  • 别再死记硬背!用这5个生活化比喻,轻松搞懂计算机网络三大交换技术
  • 计算机考研 408 数据结构 排序算法
  • 【数据治理实践】第 18 期:数据生命周期管理——从“无限囤积”走向“价值运营”
  • 2026.4.8
  • 零基础玩转AutoDock-Vina:配置文件避坑指南
  • 告别EEZ Studio的Flow:一份给STM32开发者的纯C语言LVGL UI事件处理教程
  • Jetson AGX Orin远程开发环境搭建避坑指南:VNC Viewer连接配置全解析与优化
  • 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现。 MATLAB(工...
  • 别再手动解析了!STM32CubeMX + JY901陀螺仪,用DMA空闲中断实现稳定数据接收(附完整工程)
  • 深度学习_YOLO,卡尔曼滤波和
  • Python AOT编译性能幻觉破除实验:实测显示83%项目启用AOT后启动延迟反增,3个被忽略的元数据加载瓶颈(附patch PR链接)
  • TensorRT INT8量化实战:从算法原理到部署调优
  • go-systemd 守护进程通知机制详解:sd_notify 协议完整实现
  • 飞牛OS搭配acme.sh踩坑实录:从证书部署到Nginx配置更新的完整避坑指南
  • 做自媒体,别再“自嗨”了——我从数据中学到的3个教训
  • springboot基于Hadoop的健康饮食推荐系统的设计与实现_5578bn9k_yh025
  • 保姆级教程:在K230开发板上为张大头步进电机实现位置、速度、回零全功能控制
  • HLS高层次综合发展史
  • coze-loop部署教程:免配置镜像实现本地安全代码重构
  • Linux 的 mktemp 命令
  • Shell应用手册(一) 5 .终端连接与环境配置(SSH连接、命令行提示符含义)
  • ServiceMonitor如何与Prometheus关联?
  • VisDrone2019数据集COCO格式转换实战:代码解析与避坑指南
  • 虚拟磁链与直接功率控制:定频、VF-DPC及基于PI调节的仿真说明与相关论文
  • 避坑指南:如何选择靠谱的南京企业管理咨询公司?
  • 捡垃圾玩大模型:用E5神U+MI50矿卡在Ubuntu 22.04上搭建AI推理环境(保姆级避坑)
  • 游戏模组框架:SMAPI构建个性化星露谷体验的全栈解决方案