亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

不停的malloc程序會(huì)異常嗎

學(xué)益得智能硬件 ? 來(lái)源:學(xué)益得智能硬件 ? 2025-01-14 09:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

把 malloc 放在死循環(huán)里面,會(huì)是什么樣的現(xiàn)象?

比如這樣的代碼,每次使用 malloc 申請(qǐng) 1M 大小的內(nèi)存,其他什么操作也不做。

理論上來(lái)說(shuō),堆內(nèi)存是有限的,如果不停的申請(qǐng),遲早內(nèi)存會(huì)被用完,程序應(yīng)該會(huì)異常退出。

于是我找了個(gè)環(huán)境,把程序運(yùn)行起來(lái)試下。

先用虛擬機(jī),跑的一個(gè) 32 位的紅帽系統(tǒng),程序運(yùn)行起來(lái),好像只是一個(gè)普通的死循環(huán),半天也沒(méi)見他退出,而且程序也不卡頓。

看下進(jìn)程的內(nèi)存使用情況,數(shù)值一直都沒(méi)變。

應(yīng)該可以得出結(jié)論,雖然不停的申請(qǐng),但是因?yàn)閮?nèi)存沒(méi)有使用,所以系統(tǒng)并沒(méi)有真正的分配。

修改下代碼,申請(qǐng)了內(nèi)存后,使用 memset 把內(nèi)存初始化一下,再次運(yùn)行,不一會(huì)虛擬機(jī)卡頓,直到程序被殺死。

換個(gè)環(huán)境,這次使用 64 位的Ubuntu,同樣的代碼,沒(méi)有初始化內(nèi)存,運(yùn)行程序,很快進(jìn)程就被殺死。

運(yùn)行的時(shí)候看了下內(nèi)存的使用情況,確實(shí)是在快速的增長(zhǎng)。

所以在這個(gè)環(huán)境里面,即使申請(qǐng)的堆內(nèi)存沒(méi)有使用,系統(tǒng)也確實(shí)給分配了。

同樣是 malloc 函數(shù),不同的操作系統(tǒng),內(nèi)存管理的策略也不太一樣。

#include 
#include 


int main()
{
    char *p = NULL;


    while (1) 
    {   
        p = (char *)malloc(1);


        *p = 1;
    }   


    return 0;
}

最后給大家看個(gè)筆試題,也是關(guān)于 malloc 函數(shù),運(yùn)行程序,應(yīng)該是個(gè)怎樣的現(xiàn)象?如果你能看出來(lái),歡迎在評(píng)論區(qū)交流。

聲明:本文內(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)投訴
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3833

    瀏覽量

    84605
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4403

    瀏覽量

    66599
  • malloc
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    328

原文標(biāo)題:不停的malloc,程序會(huì)不會(huì)異常

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    電能質(zhì)量在線監(jiān)測(cè)裝置異常數(shù)據(jù)會(huì)自動(dòng)修復(fù)嗎?

    電能質(zhì)量在線監(jiān)測(cè)裝置對(duì)異常數(shù)據(jù)的處理能力取決于具體技術(shù)方案和異常類型。現(xiàn)代高端裝置通常具備有限的自動(dòng)修復(fù)能力,但需結(jié)合人工審核和硬件維護(hù),形成 “自動(dòng)修復(fù) + 人工干預(yù)” 的閉環(huán)管理體系。以下
    的頭像 發(fā)表于 10-15 16:07 ?97次閱讀

    RT-Thread Studio CH32V307工程,程序運(yùn)行異常怎么解決?

    RT-Thread Studio CH32V307 工程歷程程序運(yùn)行異常,官方的EVT歷程使用是OK的,沒(méi)人維護(hù)嗎?
    發(fā)表于 10-13 06:36

    rt_malloc_align函數(shù)內(nèi)存越界問(wèn)題怎么解決?

    void *rt_malloc_align(rt_size_t size, rt_size_t align) { void *align_ptr; void *ptr; rt_size_t
    發(fā)表于 09-22 08:30

    機(jī)器學(xué)習(xí)異常檢測(cè)實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無(wú)標(biāo)簽異常檢測(cè)系統(tǒng)

    本文轉(zhuǎn)自:DeepHubIMBA無(wú)監(jiān)督異常檢測(cè)作為機(jī)器學(xué)習(xí)領(lǐng)域的重要分支,專門用于在缺乏標(biāo)記數(shù)據(jù)的環(huán)境中識(shí)別異常事件。本文深入探討異常檢測(cè)技術(shù)的理論基礎(chǔ)與實(shí)踐應(yīng)用,通過(guò)IsolationForest
    的頭像 發(fā)表于 06-24 11:40 ?1112次閱讀
    機(jī)器學(xué)習(xí)<b class='flag-5'>異常</b>檢測(cè)實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無(wú)標(biāo)簽<b class='flag-5'>異常</b>檢測(cè)系統(tǒng)

    stm32cubeIDE使用malloc失敗是什么原因?

    我在stm32cubeIDE環(huán)境下,已經(jīng)分配了足夠的棧與堆空間,但是我在的使用malloc分配內(nèi)存時(shí),一直分配不成功,這是什么原因?
    發(fā)表于 06-09 07:24

    stm32cubeIDE使用malloc失敗是什么原因?

    我在stm32cubeIDE環(huán)境下,已經(jīng)分配了足夠的棧與堆空間,但是我在的使用malloc分配內(nèi)存時(shí),一直分配不成功,這是什么原因?
    發(fā)表于 06-04 07:18

    6.18年終狂歡購(gòu)!滿額即贈(zèng),驚喜享不停!

    6.18年終狂歡購(gòu)!滿額即贈(zèng),驚喜享不停!
    的頭像 發(fā)表于 05-30 18:04 ?451次閱讀
    6.18年終狂歡購(gòu)!滿額即贈(zèng),驚喜享<b class='flag-5'>不停</b>!

    stm32cubeIDE使用malloc失敗的原因?

    我在stm32cubeIDE環(huán)境下,已經(jīng)分配了足夠的棧與堆空間,但是我在的使用malloc分配內(nèi)存時(shí),一直分配不成功,這是什么原因?
    發(fā)表于 04-27 06:45

    散熱設(shè)計(jì)與測(cè)試:PCBA異常發(fā)熱的解決之道

    在電子設(shè)備的生產(chǎn)和測(cè)試過(guò)程中,PCBA(印制電路板組裝)異常發(fā)熱是一個(gè)常見且棘手的問(wèn)題。過(guò)高的溫度不僅會(huì)影響設(shè)備的性能,還可能導(dǎo)致元器件損壞甚至設(shè)備報(bào)廢。因此,快速定位發(fā)熱原因并采取有效的解決措施
    的頭像 發(fā)表于 04-10 18:04 ?1059次閱讀

    TJA1043的收發(fā)器,如果CAN總線出現(xiàn)異常,它會(huì)進(jìn)入異常狀態(tài)嗎?

    關(guān)于 TJA1043 的收發(fā)器,如果 CAN 總線出現(xiàn)異常,它會(huì)進(jìn)入異常狀態(tài)嗎?一旦處于異常狀態(tài),它的行為會(huì)如何?例如,可以發(fā)送數(shù)據(jù)包但無(wú)法接收,謝謝
    發(fā)表于 04-04 07:30

    在msm8909平臺(tái)使用sn65dsi83,打開視頻數(shù)據(jù)后,會(huì)不停地報(bào)中斷,怎么解決?

    我在高通msm8909平臺(tái)使用sn65dsi83這顆IC,在寫完寄存器參數(shù),PLL_LOCK后,讀取0xE5的值為0x31,enable IC 的 SW_IRQ,打開視頻數(shù)據(jù)后,會(huì)不停地報(bào)中斷,讀取到的0xE5的值為0x01,請(qǐng)問(wèn)出現(xiàn)0x01可能的原因是什么?
    發(fā)表于 12-20 11:18

    用TVP7002采集VGA視頻信號(hào)的時(shí)候,采集的視頻畫面會(huì)不停的左右扭動(dòng),這個(gè)現(xiàn)象是和什么有關(guān)呢?

    我在用TVP7002采集VGA視頻信號(hào)的時(shí)候,發(fā)現(xiàn)采集的視頻畫面會(huì)不停的左右扭動(dòng),好像每行的起始地址會(huì)不斷變化,這個(gè)現(xiàn)象是和什么有關(guān)呢?謝謝。
    發(fā)表于 12-19 06:38

    VTT供電電源變換是否會(huì)導(dǎo)致DDR的Leveling出現(xiàn)time out的異常?

    存在最大20mV的變化量,正常的時(shí)候,該值的變化量一般在幾個(gè)mV。 現(xiàn)在,想要請(qǐng)問(wèn)下,①VTT供電電源變換是否會(huì)導(dǎo)致 DDR 的Leveling 出現(xiàn)time out的異常?②VTT的變化范圍
    發(fā)表于 12-06 06:09

    ADS1230輸出數(shù)據(jù)會(huì)不定時(shí)出現(xiàn)一個(gè)異常數(shù)據(jù),怎么回事?

    我們現(xiàn)在在使用ADS1230芯片。在使用過(guò)程中一直沒(méi)什么問(wèn)題。最新一批產(chǎn)品出現(xiàn)了,輸出數(shù)據(jù)會(huì)不定時(shí)出現(xiàn)一個(gè)異常數(shù)據(jù)的問(wèn)題。換了原來(lái)的ADS1230芯片后正常。 我們抓波形發(fā)現(xiàn),這些異常數(shù)據(jù)出現(xiàn)后
    發(fā)表于 11-26 07:25

    TLV5604 PD腳懸空狀態(tài)異常怎么解決?

    原理圖如下:依照TXB0108PWR手冊(cè)建議,PD腳未做下拉處理 發(fā)現(xiàn)OUAOUTBOUTCOUTD在上電瞬間會(huì)隨機(jī)發(fā)出約800ms時(shí)長(zhǎng)的異常電壓 PD腳放置下拉電阻或直接連接VDD后異常消除,想了解下,上面
    發(fā)表于 11-20 07:53