c語言記憶體洩露能修復麼,一個關於C語言程式記憶體洩露的問題

時間 2022-05-16 22:35:18

1樓:

對於現代作業系統而言,使用者態程式記憶體洩漏的結果是造成實體記憶體耗盡,最後頻繁寫交換檔案,降低系統效能,影響體驗。如果有c源程式,可以修復,可能需要結合一些專用的工具,例如debug工具,動態觀察洩漏情況。更需要結合**靜態分析來定位故障位置。

2樓:匿名使用者

c語言程式設計時候,會自己開闢記憶體,使用如alloc這樣的函式,當然也有可能使用封裝好的其它函式。空間手動開闢,就需要手動釋放。

如果開闢是使用迴圈中開闢的n個位置,那麼釋放時,需要對需要釋放的位置逐個進行檢查,再釋放。釋放的方式,與檢查的時機都是**寫的。難免存在一些這樣那樣的問題。從而造成記憶體洩漏。

記憶體洩漏太多,會造成宕機。(蘋果裝置記憶體洩漏到一定程度後,會自動退出該程式)

3樓:

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

所以 你肯定是malloc申請記憶體後,未釋放造成,請檢查。

後果 : 會導致cpu資源耗盡,硬碟耗盡,程序id耗盡。

也就是說程式崩潰,或機子死了。

4樓:叛逆百分

記憶體洩漏太多會造成記憶體不足。申請空間之後記得釋放就行。

一個關於c語言程式記憶體洩露的問題:

5樓:天神交會

malloc是向系統申請記憶體的,因為你用的系統在你的程式退出後自動釋放的記憶體,所以沒有造成洩露問題。

這種情況下,你的程式不退出,而是不斷地申請記憶體,部分釋放記憶體或完全不釋放記憶體,才會造成洩露。

6樓:童年的秋天

首先,你要知道 在程式終止退出的時候, 不管你在程式裡申請了多少記憶體, 作業系統都會幫你釋放。

在程式執行過程中,才有記憶體洩露這樣的說法,你申請記憶體, 不釋放, 程式執行佔用的記憶體就越來越大, 直到程式崩潰, 但你一旦退出程式, 所申請的記憶體都會被系統釋放的

寫c語言程式,記憶體洩漏怎麼辦,重啟電腦可以嗎

7樓:匿名使用者

不用重啟。

記憶體洩漏是程式出問題了。可能是陣列訪問越界之類的問題。

關閉程式即可,如果再次啟動還是這個問題,請傳送源**來追問。

關於c程式記憶體洩露的問題

8樓:匿名使用者

多大可以是由作業系統決定的

如果在dos上,60*255*34*2已經接近1m了,無論如何都是過大了

如果在windows或者其它32位現代作業系統,60*255*34*4一共才2m,不會過大

但是這個陣列定義為自動變數,分配在棧上,2m也不算小了,為了安全起見,還是分配在堆上穩妥一些

9樓:天雨下凡

你這個程式不可能有記憶體洩漏問題,根本就沒有動態內容分配!**沒有問題,可以執行!!!

c語言中記憶體洩漏的原始碼

10樓:匿名使用者

記憶體洩漏一般是指:程式動態分配的堆記憶體在使用完後沒有被釋放.有兩類記憶體洩漏情況:

一.在ring3下記憶體洩漏(臨時性的ring0記憶體洩漏);二.在ring0下記憶體洩漏.

前者的一般不會造成嚴重問題,頂多程式卡死,當程序終止,所有該程序的記憶體洩漏隨之變得無意義.而後者則會造成系統卡死甚至倒塌.至於c程式,不言自明.

11樓:匿名使用者

申請了記憶體不釋放就是記憶體洩露比如.void getmemory(int len)

12樓:匿名使用者

#include void main()

c語言無限malloc會丟擲異常嗎?還是會耗盡記憶體?

13樓:風若遠去何人留

不會丟擲異常

malloc 分配記憶體成功 則會返回首地址失敗 返回null

所以 根據返回值就可以判斷是否成功了。

14樓:不說無所謂謂謂

malloc有返回值,申請不到記憶體是返回null

15樓:匿名使用者

應該是會報記憶體不足的錯吧

關於c語言的問題,一個關於c語言的問題

彬彬有禮 對於你的疑問,我一個一個幫你解決 1.因為5 9 代表整除取商,即結果為0 而 5.0 9 代表5除以9,即結果為0.555556 所以兩者結果完全不一樣。再比如 3 2 1,而3.0 2 1.5 2.double b 2這是對的,沒有必要寫成double b 2.0,因為系統會自動幫你轉...

關於C語言的一個問題,關於C語言的6個問題

值的互換不一定需要中間變數。但你所說的交換記憶體地址的話,不通過中間變數挺難做得到。因為c語言沒有直接交換的語句。所以,可以通過以下方式來進行值交換。void swap int a,int b void main 雖然n和m的值是互相交換了,但是它們的各自的指標地址並沒有改變。當然要有中間變數了。你...

關於C語言的問題,求教,一個關於C語言的問題,求教!!

冰雨vs冰霜 a b 是賦值 a b 是等號 這是新手長犯錯誤 c語言中經常犯的毛病!初學者必看!c 語言的最大特點是 功能強 使用方便靈活。c編譯的程式對語法檢查並不象其它高階語言那麼嚴格,這就給程式設計人員留下 靈活的餘地 但還是由於這個靈活給程式的除錯帶來了許多不便,尤其對初學c語言的人來說,...