馬洛克(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
  • 閱讀 ( 45 )
  • 分類:科技

你可能感興趣的文章

靜止的(static)和動態記憶體分配(dynamic memory allocation)的區別

...檔案中,有四個函式用於動態記憶體分配。它們是calloc、malloc、realloc和free。函式malloc()分配所需大小的位元組,並返回一個空指標,指向所分配記憶體的第一個位元組。函式calloc()分配所需大小的位元組並將其初始化為零...

  • 發佈於 2020-10-11 12:09
  • 閲讀 ( 243 )

分配(calloc)和馬洛克(malloc)的區別

分配(calloc)和馬洛克(malloc)的區別   在程式設計中,有必要儲存資料。資料儲存在儲存器中。這些記憶體位置稱為變數。每個變數都有特定的型別。它們可以是整數、浮點、雙精度、字元等。還有一些資料結構可以儲存相同型...

  • 發佈於 2020-10-24 03:58
  • 閲讀 ( 51 )

文藝復興(renaissance)和巴洛克音樂(baroque music)的區別

文藝復興與巴洛克音樂 瞭解文藝復興時期音樂和巴洛克音樂之間的區別是非常有用的,因為它們是被稱為音樂的兩種普遍現象。眾所周知,音樂起源於每一種文化和文明。有數以百萬計的人熱愛音樂;有些人只是聽眾,有些...

  • 發佈於 2020-10-25 09:14
  • 閲讀 ( 64 )

新歷史主義批評(new historicism)和文化唯物主義(cultural materialism)的區別

...史主義批評(new historici**)和文化唯物主義(cultural materiali**)的區別 新歷史主義和文化唯物主義是兩種具有相似特徵的文學理論。新歷史主義與文化唯物主義的主要區別在於,新歷史主義關注的是為了實現變革而必須克服的社會壓...

  • 發佈於 2020-10-28 03:52
  • 閲讀 ( 58 )

馬克思主義(marxism)和自由主義(liberalism)的區別

...這種自由主義哲學進入了這個領域。據說,哲學家約翰·洛克提出了這個概念。自由主義者反對絕對的君主制、國家宗教、君權等,而不是君主制,而是提倡民主。然而,自由主義在法國大革命後受到了極大的關注,今天它已經...

  • 發佈於 2020-10-29 08:02
  • 閲讀 ( 85 )

舊約全書(old testament)和新約(new testament)的區別

...到的關於聖經的最基本的問題之一。重要的是要知道舊約和新約都是聖經的形式。聖經被認為是基督徒的聖典。新約中的事件背景構成了舊約。簡而言之,可以說舊約是***教義的基礎。舊約是新約的先驅,這一點也不誇張。據信...

  • 發佈於 2020-11-02 18:45
  • 閲讀 ( 50 )

古典的(classical)和巴洛克風格(baroque)的區別

古典與巴洛克 古典音樂和巴洛克音樂是兩種不同的音樂形式,它們的特點和表現方式各不相同。人們普遍認為巴洛克音樂時期始於文藝復興之後,大約在1600年。巴洛克音樂是古典音樂的前身,大約在1750年巴洛克音樂之後,...

  • 發佈於 2020-11-05 10:26
  • 閲讀 ( 56 )

巴洛克藝術(baroque art)和文藝復興藝術(renaissance art)的區別

巴洛克藝術(baroque art)和文藝復興藝術(renaissance art)的區別 巴洛克藝術和文藝復興藝術是兩種藝術形式,它們之間有一個關鍵的區別。巴洛克藝術是指起源於羅馬的一種藝術形式。巴洛克藝術因其複雜和矛盾的性質以及喚起情...

  • 發佈於 2020-11-05 20:03
  • 閲讀 ( 59 )

為什麼我的chrome主頁會改變?

...情的情況下發生了變化,這可能會特別令人沮喪。 主頁和新標籤頁之間的區別 出於某種原因,Chrome區分了新標籤頁(啟動Chrome、開啟新視窗或開啟新標籤頁時開啟的地址)和主頁(按下Chrome或鍵盤上的Home按鈕時開啟的地址)...

  • 發佈於 2021-04-07 01:29
  • 閲讀 ( 42 )

儘管本季度表現強勁,但洛克希德馬丁公司(lmt)仍拋售

洛克希德馬丁公司(Lockheed Martin Corporation,LMT)週二股價走低,儘管超過了2020年第三季度的最高和最低預期,實現每股盈利6.25美元,營收同比增長8.8%,達到165億美元。這家國防巨頭還提高了2020財年的指導值,目前預計每股收...

  • 發佈於 2021-06-17 17:49
  • 閲讀 ( 38 )
聖吉奧02
聖吉奧02

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦