【C/C++】malloc和new的区别

malloc和new的区别

  1. malloc是C语言的内存申请函数。new是C++语言的运算符。所以在.c文件中无法使用new。
  2. malloc申请空间时,传递的是size。new申请空间时,传递的是type
  3. malloc函数不会调用类/结构体的构造函数。new运算符调用类/结构体的构造函数。
  4. malloc失败时,会返回NULL指针。new失败时,会抛出std::bad_alloc异常。

注意事项

  1. 由于malloc不会调用构造函数,所以不应当使用malloc在.cpp文件中,为类/结构体申请空间。
  2. 使用malloc时,应当对返回值进行判空处理,避免使用空指针。
  3. 使用new时,应当捕获异常,避免使用空指针。

posted on 2021-04-10 20:47  GiKoo  阅读(299)  评论(0)    收藏  举报

导航