c什麼情況下需要用new,c什麼情況下需要用new

2021-03-04 09:21:25 字數 1874 閱讀 8058

1樓:匿名使用者

void func()

void main()

void main()

c++裡面, 建立物件, classname object(初始化引數);在stack棧裡面分配空間,自動釋放。

或者用 classname object=new classnam();在heap堆裡面分配空間,要手動釋放。當你不確定需要多大的時候用new

類裡面用new實現多型, 有的時候解決類

介面也用new, 這個一下說不清楚

用new有一定記憶體洩露的風險, 可以考慮用1:宣告分配記憶體是在編譯階段進行的,new分配記憶體是在執行階段進行的

2:宣告被放在棧中,new被分配在堆中或自由儲存區中

3:宣告建立陣列,在編譯階段是就為他分配記憶體。

new建立在執行階段 需要建立時就建立,不需要建立時還可以在執行時選擇陣列長度,

這就是因為int i;cin>>i;int a[i];不成功的原因,因為a[i]要在編譯階段就分配好記憶體,但是i在執行時才能知道

int i;cin>>i;int * a=new int[i];這樣可以,因為都是在執行階段才進行。

c++什麼時候用new,什麼時候不用new

2樓:砍侃看

new和不new的區別是型別分配的記憶體位置。

不new的型別物件記憶體分配是在棧區,這個地方比較小,一般只有幾m的空間。一般對於內建型別比如int、char等如果需要的記憶體不多的情況下,可以不用new。這時候的記憶體會在當前函式結束後自動釋放。

需要new的時候一般對於複雜型別,這時候記憶體分配是在堆區。比如自定義的類型別,或者需要大量記憶體空間的時候,比如你需要一個10000個int的陣列,這時候你就需要new一下了。new的物件記憶體是需要我們手動釋放的,否則會造成記憶體洩露。

以上是我的個人理解,僅供參考。

3樓:匿名使用者

建立不在棧上的新物件都應該用new

c++中,使用new的意義?為什麼要使用堆? 這樣做的意義是什麼,使用棧不是更好? 在何種情況下使

4樓:匿名使用者

使用new的意義是申請堆空間(heap)中的記憶體。

heap比起棧空間(stack)的優勢在於容量巨大,通常一個程式的stack空間的大小都只有2m左右,具體數值取決於編譯器。

使用heap需要手動釋放記憶體,但是隨時可以釋放,使用stack必須等到生命週期結束才會釋放記憶體。

對於生命週期短且佔用空間小的變數,如函式中的區域性變數,用stack。對於佔用空間大的,採用heap。熟悉了c++之後自然就分得清什麼時候該用什麼。

比起stack,heap能有更大的容量,並且能更好地被程式設計師操縱。

c++什麼時候一定要用new分配堆記憶體

5樓:砍侃看

一是需要一塊大記憶體的時候,一般棧的大小在8m左右(具體看編譯器,不過一般都不會太大),所以需要大記憶體時需要new。

二是給全域性或作用域較大的指標分配物件時。

三是一般自定義的類物件用new,也不是必須用new。

以上是我個人的體會,不一定很準確,僅作參考。

6樓:幻夢·人生

new是c++語法所規定的堆分配空間函式。

malloc是c語法所規定的對分配空間函式。

差別在於,c++是物件導向進行程式設計的。由於物件是包含建構函式的,在建立物件時,應當呼叫其建構函式,對其內部的資料進行初始化。new可以在分配空間的同時呼叫建構函式對此段空間進行初始化。

而malloc只能夠分配一段空間,不能呼叫建構函式。

所以在c++語言的開發中,要求使用new操作符進行堆空間的分配。

汽車上的手剎都有哪些作用?什麼情況下需要用到它

手剎作用 用於平地斜坡停車時制動,防止車子在無人狀態下自動滑跑,逼免發生交通事故。具體介紹如下 1 熄火停車切記要拉手剎。我們常常聽到這樣的案例,有的車主停車後不拉手剎,結果車主剛下車後,車在沒司機的情況下,車自己跑了起來,導致事故的發生。特別是在坡道上,擋 拉好手剎,等待車輛穩定後再下車 主要是為...

在會計中,什麼情況下需要簽名,什麼情況下需要蓋章,又在什麼情況下簽名並蓋章

原始憑證填制憑證單位名稱或者填制人姓名 經辦人員的簽名或者蓋章 接受憑證單位名稱 經濟業務內容 數量 單價和金額。從外單位取得的原始憑證,必須蓋有填制單位的公章 從個人取得的原始憑證,必須有填制人員的簽名或者蓋章。自制原始憑證必須有經辦單位領導人或者其指定的人員簽名或者蓋章。對外開出的原始憑證,必須...

什麼情況下需要更換火花塞,各位,什麼情況下需要更換火花塞了啊?

一般來說,當汽車有以下現象 汽車在涼車狀態下啟動比較困難,行車時有明顯的頓挫感 怠速抖動,或者發動機加速效能下降時,就應該及時檢查火花塞。回答親,你好!首先我們要弄清楚火花塞的工作原理。火花塞點火主要就是依靠頭部的電極,中心小尖尖那個地方放電,通過高壓放電接觸電極,產生電火花引燃氣缸內的混合氣體,使...