1.new内存分配失败时,会抛出bac_alloc异常,它不会返回NULL;malloc内存分配失败时会返回NULL。

2.使用new操作符申请内存分配时无需指定内存块的大小,而malloc则需要显式的指出所需内存的尺寸。

3.operator new / operator delete可以被重载,而malloc/free并不允许重载。

4.new/delete会调用对象的构造函数/析构函数以完成对对象的构造/析构,而malloc则不会。

5.malloc与free是C++、C语言的标准库函数,new、delete是c++运算符。

6.new操作符从自由存储区上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注