面试真题

C++ · 简单 · 美团

new和malloc的区别?

简单 C++ 🎤 美团
参考答案
结论:new是C++运算符,malloc是C标准库函数,二者在类型、构造、失败处理等方面不同。要点:1.new自动计算所需内存大小并返回对应类型指针,malloc需显式传入字节数且返回void*需强转;2.new分配内存后会调用对象构造函数,malloc仅分配裸内存不初始化;3.new失败抛出std::bad_alloc异常,malloc失败返回NULL;4.new可通过operator new重载,malloc不可重载;5.配套释放:new用delete(调用析构),malloc用free。示例:int* p1=new int(10); int* p2=(int*)malloc(sizeof(int));
题目整理自公开面经,答案由校招宝自研生成,仅供参考