原创文章,转发请注明出处
malloc和new的区别
- malloc是C语言的内存申请函数。new是C++语言的运算符。所以在.c文件中无法使用new。
- malloc申请空间时,传递的是size。new申请空间时,传递的是type。
- malloc函数不会调用类/结构体的构造函数。new运算符会调用类/结构体的构造函数。
- malloc失败时,会返回NULL指针。new失败时,会抛出std::bad_alloc异常。
注意事项
- 由于malloc不会调用构造函数,所以不应当使用malloc在.cpp文件中,为类/结构体申请空间。
- 使用malloc时,应当对返回值进行判空处理,避免使用空指针。
- 使用new时,应当捕获异常,避免使用空指针。
malloc和new的区别
原文:https://www.cnblogs.com/smartcore/p/14642065.html