c++中new和malloc的区别

比较维度 new(关键字) malloc(库函数)
属性 C++ 关键字(运算符) 库函数,需要包含头文件(如 <cstdlib> 或 <malloc.h>)
参数 无需显式指定内存大小,编译器自动计算类型大小 需要显式指定所需内存大小(以字节为单位)
返回类型 返回对象类型指针,与类型严格匹配,无需类型转换(类型安全) 返回 void*,通常需要强制类型转换才能赋值给具体类型的指针
分配失败 抛出 bad_alloc 异常(默认行为) 返回 NULL (或 nullptr),需手动检查返回值
重载 可以重载 (类内可自定义 operator new) 不可以重载
内存区域 在**自由存储区(Free Store)**分配内存 在**堆(Heap)**上分配内存
相关推荐
程序猿编码1 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
西飘客2 小时前
vs 怎么根据dll 生成lib文件
c++·qt
代码什么用2 小时前
Spring基础使用
java·后端·spring
程序员老陆2 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
Su米苏3 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园3 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁3 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网3 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
晒太羊的猫4 小时前
jvm面试题
jvm
禾小西4 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis