0%

C++ 中 malloc 和 new 的区别

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