`
Riddick
  • 浏览: 640290 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

C++面试题收藏(一)

阅读更多

一、描述内存描述方式以及它们的区别 

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/C++面试题大汇总 收藏

    在C/C++编程面试中,理解基础概念和掌握核心技巧是非常关键的。下面将详细解析题目中提到的一些知识点: 1. **预处理器(Preprocessor)**: - 预处理器在编译过程中执行一系列替换操作,例如`#define`用于定义宏。...

    C++面试题集锦(收藏很久的东西)

    **C++面试题集锦** 在C++面试中,面试官常常会针对各种主题提出问题,以测试候选人的基础知识、编程技巧以及问题解决能力。以下是一些常见的C++面试题,涵盖了一些关键知识点: 1. **C++基础** - **变量与数据...

    java 面试题 经典收藏

    本面试题中的示例代码提供了一种方法来计算特定日期是星期几。 #### 代码解析: 1. **闰年判断**:通过`leapyear`函数实现。该函数检查输入年份是否为闰年,判断依据是年份能被4整除但不能被100整除,或者能被400...

    面试题大全 自己收藏的

    【标题】:“面试题大全 自己收藏的” 【描述】:“各种Java面试题 给大家免费下载吧!” 本文将详细解析上述Java面试题中的关键知识点,帮助读者深入理解Java编程语言的核心概念。 1. **异常处理机制**: - Java...

    收藏微软面试智力题 (附答案).txt

    根据提供的文件信息,可以看出这是一份包含了多个微软面试智力题目的文档。虽然原文中的内容较为杂乱且不易理解,但可以从中提取出一些关键的问题,并尝试解析这些题目背后的知识点。 ### 微软面试智力题解析 ####...

    收藏的JAVA面试题大全

    收集了许多公司的java面试题 基础知识: 1.C++或Java中的异常处理机制的简单原理和应用。 当 JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA...

    腾讯技术面试题(本人亲身经历的面试题,敬请收藏)

    ### 腾讯技术面试题解析 #### 题目一:潼前些(此题表述不清,可能是编码错误或手误) **解析**: - 这个题目看起来不太清晰,可能是由于输入错误或者编码问题导致的文字混乱。如果这是一道关于字符串处理的问题,...

    收藏的JAVA面试题大全.doc

    【Java面试题解析】 1. 异常处理机制: Java中的异常处理机制是通过try-catch-finally语句块来实现的。当程序出现异常时,会生成一个异常对象,这个对象会被Java虚拟机(JVM)捕获,并沿着方法调用栈回溯,寻找合适...

    收藏的嵌入式软件开发笔试题和面试题

    嵌入式软件开发是计算机科学领域的一个重要分支,它涉及到硬件和软件的紧密集成,用于构建各种设备和系统的智能控制。对于嵌入式软件开发工程师来说,具备扎实的基础知识、良好的编程技能以及解决实际问题的能力至关...

    JAVA面试题大全

    【JAVA面试题详解】 1. 异常处理机制: Java中的异常处理是通过try、catch、finally和throw关键字来实现的。当程序违反Java语义规则时,如数组越界、空指针异常等,Java虚拟机会抛出异常。异常是java.lang....

    C/C++笔试题目大全收藏

    第二题解释了C++中的“引用”概念,引用是一个已存在变量的别名,它必须在声明时初始化,并且一旦绑定到一个变量,就不能改变。引用不占用额外的存储空间,不支持数组引用,并且在函数调用中,引用参数和指针类似,...

    C语言面试题-求职必备收藏备用.docx

    ### C语言面试题知识点详解 #### 一、基础语法 1. **C语言中的基本数据类型**: - 整型:`int`、`short`、`long`、`long long`及其无符号版本(如`unsigned int`)。 - 浮点型:`float`、`double`、`long double...

    C++程序设计代码规范和试题精编(非常值得收藏的文档)

    《C++程序设计代码规范和试题精编》是一份由林锐博士编写的经典文档,旨在帮助程序员巩固C++基础知识并提升编程技能。该文档详细阐述了C++代码的书写规范,包括文件结构、程序版式、命名规则、表达式和基本语句等多...

    JAVA面试题锦集-j精品资料.doc

    【Java面试题锦集】 1. **异常处理机制** Java中的异常处理机制是为了处理程序运行过程中的错误和异常情况。当程序违反了Java的语义规则,如数组下标越界、空指针异常等,Java虚拟机就会抛出异常。异常是`java....

    JAVA面试题汇集-j精品资料.doc

    【Java面试题汇集】 在Java面试中,常常会涉及到各种技术点,包括但不限于基础概念、异常处理、接口与多态、垃圾回收、线程同步、类与对象的设计等。以下是一些关键知识点的详细解释: 1. **异常处理机制**: ...

    牛客OA练习_C++_

    因此,收藏这些练习题对于备考者来说是十分有益的。 "牛客OA练习"这个压缩包可能包含了多个练习文件,每个文件代表一个独立的题目。文件名可能直接反映了题目内容,例如可能是对排序算法的实现、链表操作、字符串...

    c__笔试题汇总_收藏.pdf

    在C++中实现自定义的String类是一个考察基本功的面试题目。自定义String类通常要求实现构造函数、拷贝构造函数、赋值运算符重载和析构函数。实现的目的是管理字符串的内存分配和释放,以及处理字符串的赋值操作。 ...

    developer-notes:开发者笔记。包含:DevOps,微服务,分布式,高可用,区块链,白皮书,算法,黑客,设计模式,面试题

    :hundred_points: 汇聚,分布式、缓存、JVM、设计模式、数据库、算法、区块链、大数据、操作系统、黑客、DevOps、面试题 :fire: 、:fire: 、:collision: 为什么要做这个库。现在好多人都把技术文章放微信公众号,...

Global site tag (gtag.js) - Google Analytics