马洛克(malloc)和新的(new)的区别

Malloc vs new招聘计算机程序员时最常见的面试问题之一是让应聘者/计算机程序员解释Malloc和new之间的区别。malloc和new都存在于计算机语言领域,经常被计算机程序员用于动态内存分配。...

马洛克(malloc)和新的(new)的区别

Malloc vs new招聘计算机程序员时最常见的面试问题之一是让应聘者/计算机程序员解释Malloc和new之间的区别。malloc和new都存在于计算机语言领域,经常被计算机程序员用于动态内存分配。

两者之间的基本区别是,C语言中存在Maloc,而新是C++语言的一个特定特征。Malloc也是一个函数(对于程序员来说,它需要一些时间来执行),而new是一个操作符程序(它缩短了执行时间)。这是new操作符的一个好处,因为进行实时编程的程序员需要选择最快的方法来使用。

与函数malloc不同,new运算符是类型安全的。函数malloc是C语言的库函数。它所做的只是分配内存并返回一个指向它的指针。另一方面,操作符new是一个语言级的构造,它的任务是通过分配内存和调用适当的构造函数来实例化一个对象。函数malloc与操作符new的另一个区别是malloc在声明期间需要类型转换,而前者不需要。同样,函数malloc使用单词“free”来清除内存,而操作符new中的“delete”用于类似的目的。

两者在处理失败和记忆耗尽方面也有不同的方法。如果函数malloc失败,它将返回一个空指针。运算符new从不返回空指针,而是通过引发异常来指示失败。这对于new操作符是一个优势,因为计算机程序员不必每次调用new时都检查返回的指针,也不会错过这样的异常。

函数malloc不构造对象(称为对象的构造函数),但操作符new构造对象。new的另一个优点是操作符可以重载,而函数malloc不能重载。运算符new需要分配特定数量的对象,而函数malloc需要指定要分配的总字节数。

通过使用函数malloc和realloc,还可以重新调整内存大小或重新分配内存。但是,新操作员无法执行此功能,并将其视为操作员的主要缺点之一。函数malloc比操作符new的另一个优点是malloc可以快速扩展内存量。这仍然使用malloc和realloc。在C++语言中,同样的情况下,程序员必须用new new来创建一个新的内存块。新的内存必须有一个修改过的大小,并且将从原始缓冲区复制数据。必须在复制后删除原始缓冲区。对于程序员来说,这可能是一个缓慢的过程。

运算符new通过返回精确的数据类型而函数返回void*,从而对函数malloc具有优势。与运算符new相比,函数malloc也不能重载,因为在运算符new中可以重载。新操作符的另一个特点是,与函数malloc相比,操作符出错的几率更小。这被认为是程序员的一个优点,特别是当他们正在写许多代码或在一个紧凑的时间表上工作的代码。在C++中可以使用函数Maloc和FLUE,但不能直接使用。建议使用new和delete代替。

总结:

1.Malloc是函数,new是运算符。

2、新语言是C++语言的一个特点,而C语言中使用了MALOC。

3.运算符new后跟“delete”,而函数malloc后跟“free”

4、函数Maloc是C语言的库函数,而new new是C++语言的语言级构造。

  • 发表于 2021-06-23 19:10
  • 阅读 ( 196 )
  • 分类:IT

你可能感兴趣的文章

静止的(static)和动态内存分配(dynamic memory allocation)的区别

...头文件中,有四个函数用于动态内存分配。它们是calloc、malloc、realloc和free。函数malloc()分配所需大小的字节,并返回一个空指针,指向所分配内存的第一个字节。函数calloc()分配所需大小的字节并将其初始化为零。然后返...

  • 发布于 2020-10-11 12:09
  • 阅读 ( 1010 )

分配(calloc)和马洛克(malloc)的区别

分配(calloc)和马洛克(malloc)的区别   在编程中,有必要存储数据。数据存储在存储器中。这些内存位置称为变量。每个变量都有特定的类型。它们可以是整数、浮点、双精度、字符等。还有一些数据结构可以存储相同类型元素...

  • 发布于 2020-10-24 03:58
  • 阅读 ( 151 )

为什么我的chrome主页会改变?

...情的情况下发生了变化,这可能会特别令人沮丧。 主页和新标签页之间的区别 出于某种原因,Chrome区分了新标签页(启动Chrome、打开新窗口或打开新标签页时打开的地址)和主页(按下Chrome或键盘上的Home按钮时打开的地址)...

  • 发布于 2021-04-07 01:29
  • 阅读 ( 155 )

sonos roam将包括自动trueplay和新的“声音交换”功能

周二,Sonos将推出名为Sonos Roam的最新产品,Verge在几天前详细介绍了这款产品。现在,我可以分享更多关于新功能的信息,这些新功能将首先出现在微型、无处不在的扬声器上。 我之前的报告列出了Sonos Roam的核心规...

  • 发布于 2021-04-16 01:19
  • 阅读 ( 175 )

android wear 2.0再次启动,冲击lg和新的balance设备

上个月,谷歌发现androidwear2.0在旧设备上有一个bug,因此推迟了androidwear2.0的推出。不过,现在看来,不管是什么原因造成的阻塞已经被修复,更新击中了一堆新设备。 LG在Google+上发布消息称,LG G Watch R和Watch Urbane将...

  • 发布于 2021-05-10 15:45
  • 阅读 ( 105 )

德里(delhi)和新德里(new delhi)的区别

德里的主要区别(main difference delhi) vs. 新德里(new delhi) 许多人认为德里和新德里是指同一个城市的名字,这两个名字可以互换。尽管新德里和新德里在口语上可以互换使用,但它们是两个截然不同的实体。新德里是德里的...

  • 发布于 2021-06-27 11:50
  • 阅读 ( 1424 )

自由主义(liberalism)和新自由主义(neoliberalism)的区别

...蒙时期,自由主义哲学才进入了这个领域,据说一位名叫洛克的哲学家引入了这个概念。他说,个人有一种天生的自由权,继承财产,过自由生活。因此,不应根据个人的社会关系侵犯这一权利。自由主义者反对君主专制、国家...

  • 发布于 2021-06-28 11:42
  • 阅读 ( 541 )

俄国形式主义(russian formalism)和新批评(new criticism)的区别

...但新批评认为形式和内容紧密相连,同等重要。 俄国****和新批评是20世纪上半叶发生的两次****文学运动。在这两个文学奖学金,文学作品或文本本身被认为是至关重要的,是独立于其背景或作者的意图研究。而且,这两大流派...

  • 发布于 2021-07-02 08:23
  • 阅读 ( 621 )

自由主义(liberalism)和新自由主义(neoliberalism)的区别

...权利,仅举几例。 在启蒙运动时期,17世纪的哲学家约翰洛克认为,每个人都有生命、自由和财产的自然权利,**不得侵犯这些权利。这是自由主义开始成长为一种独立的政治运动的时候,因为它受到了西方许多哲学家和经济学...

  • 发布于 2021-07-03 05:49
  • 阅读 ( 329 )

自由主义(liberalism)和新自由主义(neoliberalism)的区别

...权利,仅举几例。 在启蒙运动时期,17世纪的哲学家约翰洛克认为,每个人都有生命、自由和财产的自然权利,**不得侵犯这些权利。这是自由主义开始成长为一种独立的政治运动的时候,因为它受到了西方许多哲学家和经济学...

  • 发布于 2021-07-03 09:20
  • 阅读 ( 396 )
圣吉奥02
圣吉奥02

0 篇文章

相关推荐