一、描述内存描述方式以及它们的区别
1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。
2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。
3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由程序员决定,使用非常灵活,但问题也最多。
二、内存分配new/delete和malloc/free的区别
具体区别:
1、new 是c++中的操作符,malloc是c 中的一个函数
2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数
3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。
4、new 和 malloc效率比较,new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的都是void指针。
5、new是类型安全的,而malloc不是,比如:
int* p = new float[2]; // 编译时指出错误
int* p = malloc(2*sizeof(float)); // 编译时无法指出错误
分享到:
相关推荐
个人收藏的面试集锦: C++面试题集(最全的CC++试题集和答案) c与c++面试题汇总1 c与c++面试题汇总
最近因为找工作,收集了很多C语言方面方面的面试题以及答案。现在新工作搞定了,决定把这些资料发出来,送给有需要的朋友,免得再象我一样到处搜寻,实在辛苦。 发布之前先申明两点: 1 所有资料来自网络(主要是...
自己收藏的C++面试笔试试题,本人觉得不错,值得看看
对要面试C++的朋友,也许会有帮助。【希望看看】
收藏微软面试智力题 (附答案).txt benrenshoucangde
收集了许多公司的java面试题 基础知识: 1.C++或Java中的异常处理机制的简单原理和应用。 当 JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA...
Java笔试面试题大汇总(1) java基础 j2ee jsp SQL 笔试面试题大全;很全的,还包括常用算法,SQL查询!....值得收藏!
Java笔试面试题大汇总(1) java基础 j2ee jsp SQL 笔试面试题大全;很全的,还包括常用算法,SQL查询!....值得收藏!
非常值得收藏的文档,是很经典的关于C++代码书写规范和面试试题的汇编,可以帮助大家巩固基础和成长
C++笔试题目-带答案。可以帮助面试者顺利通过笔试。值得收藏。
面试用得上。快收藏,我也是自己在网上看的,总结的。
:hundred_points: 汇聚,分布式、缓存、JVM、设计模式、数据库、算法、区块链、大数据、操作系统、黑客、DevOps、面试题 :fire: 、:fire: 、:collision: 为什么要做这个库。现在好多人都把技术文章放微信公众号,...
自己收藏的,笔试面试用的C_C++测试题。
本周热点资源 C、C++面试题大全 嵌入式Linux系统开发技术详解--基于ARM(完整版) 程序员面霸手册(笔试面试的葵花宝典) visual c++6.0应用编程150例源代码 Dom文档对象模型-2010版 linux的内核及其内核源码分析1 ...
本项目收藏各类IT技术书籍,包含上千本,没准你想找的书就在这里呢,包含了互联网行业大多数书籍和面试经验题目等等。有人工智能系列(常用深度学习框架TensorFlow、pytorch、keras。NLP、机器学习,深度学习等等)...
题解、Java、C++、Python、后端面试、操作系统、计算机网络、系统设计 链接: 收藏数:118k system-design-primer 简介:系统设计入门 链接: 收藏数:117k JavaGuide 简介:【Java学习+面试指南】 一份涵盖大部分...
本项目收藏这些年来看过或者听过的一些不错的常用的上千本书籍,没准你想找的书就在这里呢,包含了互联网行业大多数书籍和面试经验题目等等。有人工智能系列(常用深度学习框架TensorFlow、pytorch、keras。NLP、...
(3)java服务端面试题整理 项目地址: (4):face_with_open_mouth: 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务等领域知识,后端同学必看,前端同学也可学习 项目地址: (5)【Java...