国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是內(nèi)存泄漏??jī)?nèi)存泄漏有哪些現(xiàn)象

工程師鄧生 ? 來(lái)源:嵌入式悅翔園 ? 作者:JamesBin ? 2022-09-05 17:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

今天在做項(xiàng)目的時(shí)候被發(fā)現(xiàn)有個(gè)指針變量的輸出值總是莫名其妙,最后查清了原因發(fā)現(xiàn)是因?yàn)?strong>內(nèi)存泄漏了!

有些小伙伴看到這就有點(diǎn)疑惑了,怎么內(nèi)存還會(huì)泄漏呢?我只聽(tīng)過(guò)漏水、漏油,還沒(méi)聽(tīng)過(guò)內(nèi)存還會(huì)泄漏!

內(nèi)存泄漏幾乎是很難避免的,不管是老手還是新手,都存在這個(gè)問(wèn)題,甚至 Windows 與 Linux 這類系統(tǒng)軟件也或多或少存在著內(nèi)存泄漏。

所以我還是那句話:不會(huì)用指針就不要用,不要你埋的雷讓我來(lái)踩!

什么是內(nèi)存泄漏

在計(jì)算機(jī)科學(xué)中,內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存

內(nèi)存泄漏并非指內(nèi)存在物理上的消失,而指程序中已動(dòng)態(tài)分配的堆內(nèi)存由于某種原因程序未釋放或無(wú)法釋放,造成系統(tǒng)內(nèi)存的浪費(fèi),導(dǎo)致程序運(yùn)行速度減慢甚至系統(tǒng)崩潰等嚴(yán)重后果。

在C中出現(xiàn)內(nèi)存泄漏的主要原因就是程序猿在申請(qǐng)了內(nèi)存后,沒(méi)有及時(shí)釋放沒(méi)用的內(nèi)存空間,甚至消滅了指針導(dǎo)致該區(qū)域內(nèi)存空間根本無(wú)法釋放

知道了出現(xiàn)內(nèi)存泄漏的原因就能知道如何應(yīng)對(duì)內(nèi)存泄漏,即:不用了的內(nèi)存空間記得釋放,不釋放留著過(guò)年哇!

內(nèi)存泄漏的嚴(yán)重后果

要說(shuō)內(nèi)存泄漏的后果,那我就告訴你,內(nèi)存泄漏會(huì)讓你查程序查到懷疑人生,特別是對(duì)于新人來(lái)說(shuō),自己本來(lái)就對(duì)指針、內(nèi)存這些東西不太熟悉,自己也不敢用,結(jié)果由于“大佬”的自信操作,造成你查起來(lái)真的非常非常費(fèi)勁!

因?yàn)閮?nèi)存泄漏的堆積,最終消耗盡系統(tǒng)所有的內(nèi)存。所以一次性內(nèi)存泄漏并沒(méi)有什么危害,因?yàn)橐淮涡缘膬?nèi)存泄漏并不會(huì)堆積。但是如果你遇到的是隱式內(nèi)存泄漏的危害性則非常大,因?yàn)檩^之于常發(fā)性,偶發(fā)性內(nèi)存泄漏它更難被檢測(cè)到。

長(zhǎng)期運(yùn)行的程序出現(xiàn)內(nèi)存泄漏,影響很大,如操作系統(tǒng)、后臺(tái)服務(wù)等等,出現(xiàn)內(nèi)存泄漏會(huì)導(dǎo)致響應(yīng)越來(lái)越慢,最終卡死。

內(nèi)存泄漏有哪些現(xiàn)象

發(fā)生內(nèi)存泄漏的代碼會(huì)被多次執(zhí)行到,每次被執(zhí)行的時(shí)候都會(huì)導(dǎo)致一塊內(nèi)存泄漏,所以當(dāng)你程序出現(xiàn)莫名其妙的問(wèn)題時(shí),記得想到這點(diǎn)。

另外內(nèi)存泄漏還具有偶發(fā)性,發(fā)生內(nèi)存泄漏的代碼只會(huì)被執(zhí)行一次,或者由于算法上的缺陷,導(dǎo)致總會(huì)有一塊且僅一塊內(nèi)存發(fā)生泄漏,同樣會(huì)出現(xiàn)莫名其妙的問(wèn)題,并且這種問(wèn)題還不是每次都會(huì)發(fā)生,比上面的情況更加莫名其妙。

程序在運(yùn)行過(guò)程中不停的分配內(nèi)存,但是直到結(jié)束的時(shí)候才釋放內(nèi)存。嚴(yán)格的說(shuō)這里并沒(méi)有發(fā)生內(nèi)存泄漏,因?yàn)樽罱K程序釋放了所有申請(qǐng)的內(nèi)存。

但是對(duì)于一個(gè)程序,可能需要運(yùn)行幾天、幾周甚至幾個(gè)月,不及時(shí)釋放內(nèi)存也可能導(dǎo)致最終耗盡系統(tǒng)的所有內(nèi)存。所以,我們稱這類內(nèi)存泄漏為隱式內(nèi)存泄漏。

如何避免內(nèi)存泄漏

關(guān)于如何避免內(nèi)存泄漏我總結(jié)了以下幾點(diǎn):

在函數(shù)中看到有局部指針,就要警惕內(nèi)存泄漏問(wèn)題,養(yǎng)成進(jìn)一步排查的習(xí)慣;

在內(nèi)存分配后別忘記使用 free 進(jìn)行釋放,alloca 函數(shù)除外;

確保自己寫的程序沒(méi)有在訪問(wèn)空指針;

每次分配內(nèi)存之后都應(yīng)該及時(shí)進(jìn)行初始化,可以結(jié)合 memset 函數(shù)進(jìn)行初始化,calloc 函數(shù)除外;

每當(dāng)向指針寫入值時(shí),都要確保對(duì)可用字節(jié)數(shù)和所寫入的字節(jié)數(shù)進(jìn)行交叉核對(duì);

在對(duì)指針賦值前,一定要確保沒(méi)有內(nèi)存位置會(huì)變?yōu)楣铝⒌模?/p>

始終正確處理返回動(dòng)態(tài)分配的內(nèi)存引用的函數(shù)返回值;

結(jié)語(yǔ)

由于我是做汽車行業(yè)SOC開(kāi)發(fā)的,所以內(nèi)存泄漏真的很可怕,你想想你正在高速上開(kāi)著車,結(jié)果由于內(nèi)存泄漏,你的車載系統(tǒng)突然崩潰,你想想可怕不,剎車失靈,方向盤卡死!

所以汽車行業(yè)對(duì)于內(nèi)存泄漏的要求是非常嚴(yán)格,會(huì)有專人review你寫的代碼,如果你申請(qǐng)完內(nèi)存不釋放,那你完了!



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3702

    瀏覽量

    94022
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    614

    瀏覽量

    29904
  • 內(nèi)存泄漏
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    9518

原文標(biāo)題:我真的被C語(yǔ)言里的內(nèi)存泄漏整蒙了

文章出處:【微信號(hào):嵌入式悅翔園,微信公眾號(hào):嵌入式悅翔園】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    keil中c語(yǔ)言的動(dòng)態(tài)分配內(nèi)存

    與于編譯器。 下面說(shuō)一說(shuō)free這個(gè)函數(shù)。 動(dòng)態(tài)開(kāi)辟的內(nèi)存只有在程序結(jié)束時(shí)操作系統(tǒng)才進(jìn)行回收,所以當(dāng)我們不使用動(dòng)態(tài)開(kāi)辟的內(nèi)存時(shí)必須手動(dòng)將其釋放掉(不然會(huì)造成內(nèi)存泄漏),釋放動(dòng)態(tài)開(kāi)辟的內(nèi)存
    發(fā)表于 01-21 06:04

    Microchip MTCH9010泄漏檢測(cè)器助力醫(yī)療設(shè)備安全升級(jí)

    在醫(yī)療設(shè)備的安全設(shè)計(jì)中,液體泄漏檢測(cè)常常被忽視,但它卻是守護(hù)設(shè)備穩(wěn)定運(yùn)行和患者安全的關(guān)鍵一環(huán)。Microchip的MTCH9010泄漏檢測(cè)器,正如專家博文《Microchip的MTCH9010泄漏
    的頭像 發(fā)表于 01-07 16:41 ?513次閱讀

    化工廠液體泄漏識(shí)別預(yù)警系統(tǒng)

    對(duì)工廠機(jī)械管道液體泄漏情況自動(dòng)識(shí)別,如檢測(cè)漏液情況,立即反饋給后臺(tái)人員,防止安全事故的發(fā)生,有效地提高了人工巡檢的效率。
    的頭像 發(fā)表于 12-17 18:29 ?324次閱讀
    化工廠液體<b class='flag-5'>泄漏</b>識(shí)別預(yù)警系統(tǒng)

    WebGL/Canvas 內(nèi)存泄露分析

    在構(gòu)建高性能、長(zhǎng)周期運(yùn)行的 WebGL/Canvas 應(yīng)用(如 3D 編輯器、數(shù)據(jù)可視化平臺(tái))時(shí),內(nèi)存管理是一個(gè)至關(guān)重要且極具挑戰(zhàn)性的課題。 開(kāi)發(fā)者通常面臨的內(nèi)存泄漏問(wèn)題,其根源遠(yuǎn)比簡(jiǎn)單
    的頭像 發(fā)表于 10-21 11:40 ?408次閱讀
    WebGL/Canvas <b class='flag-5'>內(nèi)存</b>泄露分析

    at_device 包 ml307長(zhǎng)時(shí)間運(yùn)行內(nèi)存泄漏問(wèn)題怎么解決?

    使用 at_device 包中的 ml307 包長(zhǎng)時(shí)間運(yùn)行大量內(nèi)存泄漏問(wèn)題,大概漲了20K,求助解決。
    發(fā)表于 09-24 07:41

    如何通過(guò)PinView檢查I/O電流泄漏

    如何通過(guò)PinView檢查I/O電流泄漏
    發(fā)表于 08-25 07:45

    在OpenVINO? C++代碼中啟用 AddressSanitizer 時(shí)的內(nèi)存泄漏怎么解決?

    在 OpenVINO? C++代碼中啟用 AddressSanitizer 時(shí)遇到內(nèi)存泄漏: \"#0 0xaaaab8558370 in operator new(unsigned
    發(fā)表于 06-23 07:16

    鴻蒙5開(kāi)發(fā)寶藏案例分享---內(nèi)存優(yōu)化實(shí)戰(zhàn)指南

    、第三方 Native 庫(kù)、部分系統(tǒng)框架)分配的內(nèi)存。如果這里異常高,就要檢查 Native 代碼或使用的庫(kù)是否內(nèi)存泄漏或大對(duì)象分配。 ?** 開(kāi)發(fā)者視角** 何時(shí)用? 當(dāng)你感覺(jué)
    發(fā)表于 06-12 17:15

    HarmonyOS優(yōu)化應(yīng)用內(nèi)存占用問(wèn)題性能優(yōu)化一

    應(yīng)用開(kāi)發(fā)中,可以使用虛引用(Weak Reference)來(lái)避免內(nèi)存泄漏。通過(guò)使用Weak Reference,可以避免循環(huán)引用導(dǎo)致的內(nèi)存泄漏問(wèn)題,確保對(duì)象在不再需要時(shí)能夠被正確釋放
    發(fā)表于 05-21 11:27

    快問(wèn)快答:泄漏等級(jí)哪些?含閥門氣密性檢測(cè)原理方法和解決方案

    一、閥門的泄漏等級(jí)想象一下,一座化工廠的關(guān)鍵管道上,一個(gè)微小的閥門泄漏可能造成數(shù)百萬(wàn)的損失甚至安全事故。這就是為什么閥門泄漏等級(jí)成為工業(yè)界的「生命線」。閥門的泄漏等級(jí)是衡量閥門關(guān)閉嚴(yán)密
    的頭像 發(fā)表于 04-16 11:34 ?4502次閱讀
    快問(wèn)快答:<b class='flag-5'>泄漏</b>等級(jí)<b class='flag-5'>有</b>哪些?含閥門氣密性檢測(cè)原理方法和解決方案

    推薦兩款菲力爾氣體泄漏檢測(cè)神器

    在石化行業(yè),氣體泄漏是安全生產(chǎn)的“大敵”。如何快速、精準(zhǔn)地檢測(cè)泄漏,成了企業(yè)關(guān)注的焦點(diǎn)。今天,小菲就帶大家聊聊菲力爾的兩款“氣體泄漏檢測(cè)神器”——FLIR Si2x系列聲學(xué)成像儀和Gx系列光學(xué)氣體成像熱像儀。它們都能“看到”氣體
    的頭像 發(fā)表于 04-07 11:22 ?1013次閱讀

    快速搞懂C語(yǔ)言程序內(nèi)存分區(qū)!

    到動(dòng)態(tài)分配的數(shù)據(jù)等內(nèi)容。(內(nèi)存分區(qū)圖示)理解這些內(nèi)存分區(qū)的結(jié)構(gòu)和特性,不僅有助于編寫更高效的代碼,還能幫助排查和解決如段錯(cuò)誤、內(nèi)存泄漏、棧溢出等常見(jiàn)問(wèn)題。以下是常見(jiàn)的六
    的頭像 發(fā)表于 03-14 17:37 ?1566次閱讀
    快速搞懂C語(yǔ)言程序<b class='flag-5'>內(nèi)存</b>分區(qū)!

    使用OpenVINO?進(jìn)行推理時(shí)的內(nèi)存泄漏怎么解決?

    使用 OpenVINO? 進(jìn)行推理時(shí),內(nèi)存會(huì)隨著時(shí)間的推移而增加,并導(dǎo)致程序崩潰。
    發(fā)表于 03-06 08:29