使用 NEW 而不是 MALLOC 的优点是:
1.可以重载 operator new,但不能重载 malloc。
2.operator new 是一个运算符,而 malloc 是一个函数。
3.operator new 如果没有足够的内存会抛出异常,而 malloc 返回空指针。
4.operator new 构造对象(调用对象的构造函数),而 malloc 不会。
5.operator new/new[] 必须与 operator delete/delete[] 匹配以释放内存,而 malloc() 必须与 free() 匹配以释放内存。
6.operator new() 需要指定要分配的对象数量,而 malloc 需要指定要分配的总字节数。
7.malloc() 返回 void*,需要显式转换为所需的类型,但 new 返回适当的类型。
本文最初发表于 https://www.pkengineering.xyz,于2020年8月11日发布。
评论(0)