C/C++面试题知识点总结(持续更新)

1、new和delete的作用

  1. new / new[]:完成两件事,先底层调用 malloc 分配内存,然后调用构造函数(创建对象)。
  2. delete/delete[]:也完成两件事,先调用析构函数(清理资源),然后底层调用 free 释放空间。
  3. new 在申请内存时会自动计算所需字节数,而 malloc 则需我们自己输入申请内存空间的字节数。

2、new和malloc的区别

  1. new是运算符,malloc()是一个库函数
  2. new会调用构造函数,malloc不会;
  3. new返回指定类型指针,malloc返回void*指针,需要强制类型转换;
  4. new会自动计算需分配的空间,malloc不行;
  5. new可以被重载,malloc不能。

3、malloc/free、new/delete使用要点

malloc/free使用要点:

  1. malloc默认返回类型是void*,需要进行强制类型转换;
  2. malloc内部是字节数,需要用sizeof计算字节数。

new/delete使用要点:

  1. new创建对
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页