特征 | new | malloc |
---|---|---|
类型 | 关键字 | 标准库函数 |
支持语言 | C/C++ |
只在 C++ |
申请内存的位置 | 自由存储区 free store |
堆 |
分配内存的大小 | 编译器根据类型信息自行计算 | 显示指定字节数 |
内存分配失败 | 抛出 bac_alloc 异常, 不会返回 NULL |
返回 NULL |
返回类型 | 返回对象类型的指针 | 返回void 指针,需要转换 |
是否调用构造函数/析构函数 | 调用 | 不调用 |
处理数组 | new[] |
手动指定数组的大小 |
是否支持重载 | 支持 | 不支持 |
是否支持内存扩充 | 不支持 | realloc |
内存释放方式 | new/delete , new[]/delete[] |
malloc/free |