[1]new和malloc区别(详解): 1)异常处理:new分配内存失败抛出 bad_alloc 异常;malloc分配内存失败返回 NULL 2)内存块:new不需要指定内存块大小,编译器会根据类型自动确认;malloc 需要显式指定内存块大小 3)初始化:new 是 C++运算符,调用构造函数初始化;malloc 是C语言库函数,不会调用构造函数,需要手动初始化 4)内存分配为止:new 在自由存储区,malloc 在堆区,当然自由存储区本质也是堆区,但是前者是逻辑概念,后者是物理概念 5)内存释放:delete 调用析构函数,并将指针设置为 nullptr;free 不会调用析构,不会将指针设为 nullptr,可能产生野指针 6)数组释放:delete 可正确释放 new[] 分配的数组;free 不了解数组大小,不能释放 malloc 分配的数组
点赞 评论

相关推荐

很早就投了,不知道为什么流程这么慢。两名面试官,一男一女,我主要是做机器人的,他们也没办法问项目,全程八股拷打。要说唯一的优势,可能是我用过Auto CAD吧一面1. 做了那么多嵌入式,为什么想来搞纯软开发?2. 项目里面印象深刻的点?3. 进程之间的通讯方式?4. 讲一讲静态多态(重载)的实现原理?5. 返回值可以作为重载的区分条件吗?const与非const形参能作为重载的区分条件吗?6. 为什么要有智能指针?讲一讲share_ptr?7. 引用计数有没有可能无法清零?怎么解决循环引用的问题?8. 说一下动态多态的实现原理?虚表和虚指针存放在哪里?9. 说一说内存分布模型?10. 知道哪些排序算法?11. 说一说快排的思路?什么情况下快排有复杂度最大的情况?12. 说一下堆的概念?讲一讲堆排序?13. 堆排序时间复杂度多少?有比堆排复杂度还低的吗?14. STL里面的sort函数用的哪种排序算法?15. unordered_map和map有什么区别?16. 迭代器的原理?为什么有了指针还要迭代器?(我说有++这种可以顺序访问容器里面的元素,指针不行,但面试官好像不太满意)17. 说一说vector和list的区别?18. c++开发和嵌入式更倾向哪个?反问------------------------------------------约11.11二面#软件开发笔面经##面经#
查看18道真题和解析 软件开发笔面经
点赞 评论 收藏
分享
牛客网
牛客企业服务