c 標準庫的容器在哪些情況下會記憶體洩漏

2023-02-24 17:00:06 字數 2693 閱讀 5443

1樓:匿名使用者

也可以看看著本書《exceptional c++ style》

2樓:匿名使用者

兄弟!我和那個女人在一起3年了,也付出3年,我付出了那麼多,我得到了什麼?最後卻一無所獲。我失敗啊!

3樓:匿名使用者

看看原始碼吧,呵呵。

侯傑有個《stl原始碼剖析》

c++在哪些情況下會產生記憶體洩露

4樓:網友

有開闢,沒釋放;

或者 釋放不完全。不乾淨。

沒釋放:有new,沒有delete。有malloc沒有free;

釋放不乾淨:ex:

char* a = new char [10]; a+=5; deletea;

c++中中記憶體洩露有什麼危害?

5樓:匿名使用者

從使用者使用程式的角度來看,記憶體洩漏本身不會產生什麼危害。作為一般的使用者,根本感覺不到記憶體洩漏的存在。真正有危害的是記憶體洩漏的堆積,這會最終消耗盡系統所有的記憶體。

從這個角度來說,一次性記憶體洩漏並沒有什麼危害,因為它不會堆積。而隱式記憶體洩漏危害性則非常大,因為較之於常發性和偶發性記憶體洩漏它更難被檢測到。存在記憶體洩漏問題的程式除了會佔用更多的記憶體外,還會使程式的效能急劇下降。

對於伺服器而言,如果出現這種情況,即使系統不崩潰,也會嚴重影響使用。

不過還有一點,如果你的程式記憶體洩露正好寫到了系統使用的記憶體或者其他程式使用的記憶體位址,那麼就會導致系統異常或者程式崩潰。

6樓:心流風暴

如果程式迴圈執行,那麼就一直侵占新的記憶體空間,舊的記憶體不釋放,直到把記憶體佔滿,使程式無法執行。

7樓:之俊名

執行程式的時候,最後記憶體耗盡,然後崩潰。

c++程式記憶體洩漏都與哪些方面有關,該如何處理和避免

8樓:匿名使用者

檢查一下你的程式,動態分配的變數(new,malloc)用完以後一定要及時釋放掉(delete,free)。尤其是在迴圈中有分配記憶體空間的語句,長時間積累就會蠶食系統記憶體。

c++記憶體洩漏後繼會出現什麼結果?

9樓:倒霉熊

簡單來說,是前一種情況,如果記憶體沒有被釋放,則該記憶體會認為一直被這個程式佔用了,時間長了,會提示記憶體耗盡的錯誤。

10樓:匿名使用者

記憶體洩露是指位址丟失,也就是說你找不到那段記憶體了,那就成了野指標,只有當程式結束時才會被釋放。

11樓:芮頤革聽南

正常情況下是不會的。因為分配記憶體的方法和作業系統無關,要麼動態分配要麼堆疊分配。只要你動態分配沒有釋放或者釋放有誤。就會造成洩漏。但是不會出現乙個在乙個作業系統下會。

12樓:手機使用者

c++記憶體洩漏 是你建立了一塊記憶體但是當你不使用它的時候,沒有對它進行釋放。如此,這塊記憶體就會被標記 要使用,但其實你已經不用它了。造成的後果就是其他程式不可以使用這塊記憶體。

記憶體洩漏也稱作「儲存滲漏」,用動態儲存分配函式動態開闢的空間,在使用完畢後未釋放,結果導致一直佔據該記憶體單元。直到程式結束。(其實說白了就是該記憶體空間使用完畢之後未**)即所謂記憶體洩漏。

如何檢查c++中的記憶體洩漏

13樓:網友

在程式開頭新增:

// 記憶體洩露檢測。

#define _crtdbg_map_alloc#include

#include

在程式最開始,比如建構函式中新增:

_crtsetdbgflag(_crtdbg_leak_check_df | crtdbg_alloc_mem_df); 設定crt庫中的記憶體洩露檢測標記。

_crtsetbreakalloc(55); 設定alloc分配"塊號"為"55"處的斷點。

第二句引數可由vs輸出視窗中獲得。

14樓:匿名使用者

你可以用用這個工具。

valgrind

c++中有什麼方法可以避免記憶體洩露?

15樓:網友

良好的編碼風格和嚴謹的科學態度是最好的方法。

16樓:從c走向

首先同意3樓的,不過確實使用了指標之後,很容易一不小心就記憶體洩露了,所以還是應該養成良好的習慣,寫完之後要注意檢查一下,還有就是在除錯的時候要把好關。

17樓:跑牛

上面說的對 除非你不使用指標(貌似不使用指標是不可能的) 否則不可能避免這種現象。只能是你寫命令時候提起精神。

18樓:匿名使用者

我覺得只要使用了指標,則避免記憶體洩漏沒什麼完美好方法,不管什麼方法都要仔細地一再檢查。

19樓:網友

看一下林銳的那本《高質量編寫c/c++**》

20樓:沙支誇依

有測試記憶體洩露的工具。你在網上找吧。。。好多。

c++編譯的程式,會出現在windows作業系統下記憶體洩漏,但是在linux下沒有記憶體洩漏的這種情況嗎?

哪些情況下購房者可以選擇退房,在哪些情況下購房者可以退房

開發商 五證 不全的 未經購房者允許私自更改樓房規劃設計的 超過合同約定時間沒法辦理產權證的 開發商逾期交房催促後仍交不了的 房屋出現重大質量問題的 房子被開發商拿去做二次抵押的,房屋面積差超過3 的,都有權選擇退房。在哪些情況下購房者可以退房 在購買商品房後可能由於多種原因,會出現想要退房的想法。...

這種情況下可以開除學生嗎,學校在哪些情況下可以開除學生,哪些不可以?

不能。正常上課才算曠課,補課不是正常上課,當然不算曠課。勒令退學 開除學籍 所涉及的已不僅僅是受教育者與學校的內部關係中形成的權利,而是已經涉及到了削奪公民的憲法賦予的基本權利?受教育權,已經超過了處分的性質所決定的應有限度,理應屬於行政處罰。而按照 行政處罰法 第八條,這種在 行政處罰法 中沒有列...

創可貼在哪些情況下不能直接使用,什麼情況下不能用創可貼

一些人認為,只要有創傷就可以用創可貼,其實不然。恰當使用創可貼有助於止血,並加速傷口的癒合 但使用不當會導致傷口化膿 延誤傷口癒合。創可貼主要用於創傷較為表淺,尤其適用於切口整齊 清潔 出血不多而又不需要縫合的切割傷。對於較深的傷口,有大血管 神經 肌腱損傷以及疑有異物的傷口,不能使用創可貼。在使用...