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