c語言內存泄漏
⑴ 寫c語言程序,內存泄漏怎麼辦,重啟電腦可以嗎
不用重啟。
內存泄漏是程序出問題了。可能是數組訪問越界之類的問題。
關閉程序即可,如果再次啟動還是這個問題,請發送源代碼來追問。
⑵ C語言 分配內存不回收的後果
內存泄漏會因為減少可用內存的數量從而降低計算機的性能。最終,在最糟糕的情況下,過多的可用內存被分配掉導致全部或部分設備停止正常工作,或者應用程序崩潰。
內存泄漏可能不嚴重,甚至能夠被常規的手段檢測出來。在現代操作系統中,一個應用程序使用的常規內存在程序終止時被釋放。這表示一個短暫運行的應用程序中的內存泄漏不會導致嚴重後果。
在以下情況,內存泄漏導致較嚴重的後果:
* 程序運行後置之不理,並且隨著時間的流失消耗越來越多的內存(比如伺服器上的後台任務,尤其是嵌入式系統中的後台任務,這些任務可能被運行後很多年內都置之不理)
* 新的內存被頻繁地分配,比如當顯示電腦游戲或動畫視頻畫面時
* 程序能夠請求未被釋放的內存(比如共享內存),甚至是在程序終止的時候
* 泄漏在操作系統內部發生
* 泄漏在系統關鍵驅動中發生
* 內存非常有限,比如在嵌入式系統或便攜設備中
* 當運行於一個終止時內存並不自動釋放的操作系統(比如AmigaOS)之上,而且一旦丟失只能通過重啟來恢復。
⑶ c璇璦涓璼tring閲嶆柊璧嬪間細涓嶄細鍑虹幇鍐呭瓨娉勯湶錛
銆銆涓嶄細鍑虹幇鍐呭瓨娉勯湶錛
銆銆"sfdfsa"鍜"fwinfg"錛屼袱鑰呴兘鏄瀛楃︿覆甯擱噺錛屾棦涓嶆槸鍦ㄦ爤涓婏紝涔熶笉鏄鍦ㄥ爢涓娿傚湪C/C++璇璦涓甯擱噺琚鍒嗛厤鍦ㄥ父閲忓瓨鍌ㄥ尯(鏁版嵁孌)涓婏紝鐢辯郴緇熸帶鍒躲傚洜涓烘病鏈夋秹鍙婂埌鍫/鍔ㄦ佸唴瀛橈紝鎵浠ヤ笉瀛樺湪鎵璋撳唴瀛樻硠闇茬殑闂棰樸
銆銆C璇璦鏄涓闂ㄩ氱敤璁$畻鏈虹紪紼嬭璦錛屽簲鐢ㄥ箍娉涖侰璇璦鐨勮捐$洰鏍囨槸鎻愪緵涓縐嶈兘浠ョ畝鏄撶殑鏂瑰紡緙栬瘧銆佸勭悊浣庣駭瀛樺偍鍣ㄣ佷駭鐢熷皯閲忕殑鏈哄櫒鐮佷互鍙婁笉闇瑕佷換浣曡繍琛岀幆澧冩敮鎸佷究鑳借繍琛岀殑緙栫▼璇璦銆
⑷ 濡傛灉鐢–璇璦緙栧啓涓涓紼嬪簭鐢ㄤ簡malloc鍑芥暟浣嗘槸娌$敤free鍑芥暟錛岄偅鏁翠釜紼嬪簭緇撴潫鍚庢硠婕忕殑鍐呭瓨浼氳鏀跺洖鍚楋紵
浼氱▼搴忕粨鏉熷悗娉勬紡鐨勫唴瀛樹細琚鏀跺洖鐨勩傚洜涓虹▼搴忕粨鏉熷悗錛岃ョ▼搴忔墍鍗犵敤鐨勬墍鏈夌殑鍐呭瓨閮戒細琚鏀朵細銆傜▼搴忔墍鐢ㄧ殑鍐呭瓨鍖呮嫭闈欐佸彉閲忓拰鍔ㄦ佸彉閲忥紝鍔ㄦ佸彉閲忓彲浠ュ湪紼嬪簭涓鐢╩alloc鍜宖ree鍔ㄦ佷慨鏀圭▼搴忔墍鍗犵敤鐨勫唴瀛樼┖闂達紝闈欐佸彉閲忓垯鍦ㄥ畠涓寮濮嬪畾涔夊埌紼嬪簭緇撴潫鍓嶉兘浼氬崰鐢ㄥ唴瀛樼┖闂達紝鐩村埌紼嬪簭緇撴潫鏃舵墠浼氳閲婃斁銆俶alloc鍑芥暟鏄鍦ㄧ▼搴忎腑鍔ㄦ佸悜緋葷粺鐢寵峰唴瀛樺崟鍏冿紝涓嶇敤榪欎簺鍗曞厓鏃訛紝鍙浠ョ敤free鍑芥暟鍔ㄦ侀噴鏀撅紝榪欐牱紼嬪簭鎵鍗犵敤鐨勫唴瀛樺氨浼氬噺灝戱紝鍋囧傛病鐢╢ree鍑芥暟閲婃斁錛岄偅紼嬪簭鎵鍗犵敤鐨勫唴瀛樹笉浼氬噺灝戱紝浣嗗埌紼嬪簭緇撴潫鏃訛紝瀹冩墍鍗犵敤鐨勫唴瀛樺崟鍏冿紙鍖呮嫭闈欐佸彉閲忓拰鍔ㄦ佸彉閲忕瓑錛夐兘浼氬叏閮ㄨ緋葷粺鏀朵細銆
⑸ C++涓涓涓綆鍗曠殑鍐呭瓨娉勬紡闂棰
Name=(char *)malloc(sizeof(char)); 鏄涓哄垎閰嶄竴涓猚har鏁版嵁綾誨瀷澶у皬鐨勫唴瀛樼┖闂, 鍗砃ame[0];
C璇璦涓嶄細瀵規暟緇勮繘琛岃竟鐣屾嫻, 鍙浠ヨ緭鍑篘ame[100], 鍙鏄鍐呭規湭鐭.
Name=(char *)malloc(2*sizeof(char)); 浼氬垎閰2涓猚har澶у皬鐨勫唴瀛樼┖闂, 鍗砃ame[0], Name[1]
鎿嶄綔鏁扮粍杈圭晫浠ュ栫殑鍐呭瓨絀洪棿鏄涓嶅畨鍏ㄧ殑, 鏁版嵁涔熸槸鏃犳剰涔夌殑.
鏄鐨.(char *)malloc(sizeof(char))鍒嗛厤鐨勫唴瀛樼┖闂村苟涓嶆槸鍙橀噺Name鐨勫湴鍧, 鍙橀噺Name鍐呭瓨絀洪棿涓瀛樻斁鐨勬槸鐢眒alloc鍒嗛厤鐨勫唴瀛樺湴鍧, 鏄涓嶅悓鐨, 鍗砃ame鎸囧悜涓涓鍦板潃(鐢眒alloc鍒嗛厤鐨勫湴鍧, 鑰屽彉閲廚ame鏈韜鏄鍙︿竴涓鍦板潃).
⑹ c語言內存泄漏如何定位
用gstack長期觀察函數調用棧,分析調用情況與內存增長的關系,找到與內存泄露相關的函數,重點分析。
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。