"C面试题2023版:编程基础与动态内存管理"
"c 面试题2023版;适用于1.5w左右及以下面试者;c 面试题一:编程基础<1.语法基础1.关键字类1.new、delete、malloc、free 关系**delete 会调用对象的析构函数,和 new 相应 free 只会释放内存,new 调用构造函数。malloc 与 free 是 C /C 语言的标准库函数,new/delete 是 C 的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用 maloc/free 无法满足动态对象的规定。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于 malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不可以把执行构造函数和析构函数的任务强加于 malloc/free。因此 C 语言需要一个能完毕动态内存分派和初始化工作的运算符 new,以及一个能完毕清理与释放内存工作的运算符 delete。注意 new/delete 不是库函数。new 和 malloc 的区别(1) new 是关键字,需要编译器支持;malloc 是库函数,需要头文件支持 new 和 delete 配合使用,new 数组时候,释放时需要使用 delete[];new 会调用对象的构造函数,而 malloc 不会,需要手动调用构造函数;delete 会调用对象的析构函数,而 free 不会,需要手动调用析构函数;new 在分配内存的时候不需要指定分配大小,而 malloc 需要;new 返回的是具体类型指针,而 malloc 返回的是 void 类型指针;new 分配内存的时候如果失败,会抛出异常,而 malloc 会返回 NULL;new 和 malloc 分配内存的区域不同。new 是分配在自由存储区,如果是全局变量,static变量等,new 分配在堆上,也就是自由存储区;而 malloc 分配内存是在堆上的。综上所述,new/delete 和 malloc/free 在C 语言中都是用于动态内存的申请与释放。但是它们之间有很多区别,主要是new/delete 是C 语言的关键字和运算符,需要编译器支持;而malloc/free 是C 语言的标准库函数,需要头文件支持。同时在申请数组时需要注意,在释放内存时也需要区分使用的方式。"
![](https://csdnimg.cn/release/download_crawler_static/88480172/bg9.jpg)
![](https://csdnimg.cn/release/download_crawler_static/88480172/bga.jpg)
剩余46页未读,继续阅读
![text/x-c++](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)