有人可以修改/编辑下面的 - malloc 和 new 之间的区别 - 看看一切是否正确,或者我是否遗漏了什么或有什么问题?谢谢,
两者malloc
都new
用于动态内存分配。
malloc
是 C 函数,而new
是 C++ 运算符。
malloc
动态分配内存时需要特殊的类型转换,new
而不需要任何类型转换。
每当我们new
用于分配内存时,它也会调用任何所需的构造函数,malloc
而不会这样做。
malloc
NULL
如果内存耗尽,可能会失败并返回一个指针,而new
从不返回 NULL 指针,而是通过抛出异常来指示失败。
使用malloc
时,free
是用于释放分配内存的 C 函数。
使用new
时,delete
是用于释放分配的内存并调用任何必需的析构函数的 C++ 运算符。