以下是malloc()和new运算符之间的区别。 :
null
- 调用构造函数: new调用构造函数,而malloc()不调用。事实上,原始数据类型(char、int、float等)也可以用new初始化。例如,下面的程序打印10个。
CPP
#include<iostream> using namespace std; int main() { // Initialization with new() int *n = new int (10); cout << *n; getchar (); return 0; } |
输出:
10
2.操作员与功能: new是一个运算符,而malloc()是一个函数。
3.退货类型: new返回精确的数据类型,而malloc()返回void*。
4.故障情况: 失败时,malloc()返回NULL,其中as new抛出bad_alloc异常。
5.记忆: 对于new,内存是从空闲存储区分配的,就像malloc()中一样,内存分配是从堆中完成的。
6.尺寸: 所需的内存大小由编译器为new计算,我们必须手动计算malloc()的大小。
7.缓冲区大小: malloc()允许使用realloc()更改缓冲区的大小,而new不允许
new |
malloc() |
---|---|
调用构造函数 | 不调用构造函数 |
是接线员 | 这是一个函数 |
返回精确的数据类型 | 返回无效* |
失败时,抛出bad_alloc异常 | 失败时,返回NULL |
大小由编译器计算 | 大小是手动计算的 |
如果你在上面的帖子中发现任何不正确的地方,或者你想分享关于上述主题的更多信息,请写评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END