【C/C++笔记】 C/C++常见问题笔记 2

  • malloc() 与 new 区别

    1、属性:malloc() 是库函数,而new是关键字(运算符);

    2、位置:使用 malloc() 分配空间在堆中,new 分配的空间在自由存储区;

    3、参数:malloc() 分配空间大小由参数确定,new分配空间大小为创建对象大小;

    4、返回值:malloc() 返回值为void*类型,new返回值为确定的类型指针(安全);

    5、失败:分配失败情况下,malloc() 返回NULL,new会抛出bac_alloc异常;

    6、重载:new运算符允许被重载,malloc不能被重载;

    7、调用:new运算符会调用类的构造函数,delete会调用类的析构函数;

    8、再分配:malloc() 分配内存不足或过多时,可以使用 realloc() 扩充或缩减。

    参见:  new与malloc区别@ywliao         new和malloc区别@Datou_Nie


猜你喜欢

转载自blog.csdn.net/zhanw15/article/details/79930710