在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

不停的malloc程序會異常嗎

學益得智能硬件 ? 來源:學益得智能硬件 ? 2025-01-14 09:17 ? 次閱讀

把 malloc 放在死循環里面,會是什么樣的現象?

比如這樣的代碼,每次使用 malloc 申請 1M 大小的內存,其他什么操作也不做。

理論上來說,堆內存是有限的,如果不停的申請,遲早內存會被用完,程序應該會異常退出。

于是我找了個環境,把程序運行起來試下。

先用虛擬機,跑的一個 32 位的紅帽系統,程序運行起來,好像只是一個普通的死循環,半天也沒見他退出,而且程序也不卡頓。

看下進程的內存使用情況,數值一直都沒變。

應該可以得出結論,雖然不停的申請,但是因為內存沒有使用,所以系統并沒有真正的分配。

修改下代碼,申請了內存后,使用 memset 把內存初始化一下,再次運行,不一會虛擬機卡頓,直到程序被殺死。

換個環境,這次使用 64 位的Ubuntu,同樣的代碼,沒有初始化內存,運行程序,很快進程就被殺死。

運行的時候看了下內存的使用情況,確實是在快速的增長。

所以在這個環境里面,即使申請的堆內存沒有使用,系統也確實給分配了。

同樣是 malloc 函數,不同的操作系統,內存管理的策略也不太一樣。

#include 
#include 


int main()
{
    char *p = NULL;


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


        *p = 1;
    }   


    return 0;
}

最后給大家看個筆試題,也是關于 malloc 函數,運行程序,應該是個怎樣的現象?如果你能看出來,歡迎在評論區交流。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序
    +關注

    關注

    117

    文章

    3798

    瀏覽量

    81457
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    63012
  • malloc
    +關注

    關注

    0

    文章

    53

    瀏覽量

    84

原文標題:不停的malloc,程序會不會異常

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ADS1230輸出數據不定時出現一個異常數據,怎么回事?

    我們現在在使用ADS1230芯片。在使用過程中一直沒什么問題。最新一批產品出現了,輸出數據不定時出現一個異常數據的問題。換了原來的ADS1230芯片后正常。 我們抓波形發現,這些異常數據出現后
    發表于 11-26 07:25

    TPA3220功放的OTW_CLIP管腳異常拉低,為什么?

    當功放的功率達到120W時,TPA3220功放的OTW_CLIP管腳異常拉低。 正常情況下FAULT和OTW_CLIP管腳均為高電平,如圖為FAULT和OTW_CLIP管腳的真值表圖, 圖為異常時抓取的波形:
    發表于 09-29 09:04

    stm32單片機燒錄程序擦除原來的程序

    在STM32單片機燒錄程序的過程中, 通常情況下擦除原來的程序 ,并將新程序寫入單片機的閃存(Flash)中。這一過程是通過燒錄工具(如ST-Link、J-Link等)實現的,它們負
    的頭像 發表于 09-02 09:42 ?2562次閱讀

    plc突然斷電導致什么異常

    PLC(Programmable Logic Controller,可編程邏輯控制器)是一種廣泛應用于工業自動化領域的控制器。當PLC突然斷電時,可能導致一些異常情況,這些異常情況可能
    的頭像 發表于 07-25 10:11 ?1704次閱讀

    普通普普通雙電源切換開關ATS無法保證敏感負載晃電時不停機該怎么辦?

    GTS系列雙電源高速切換開關快速雙電源采用常用電源、備用電源、輸出電壓電流動態監控技術(幅值、相位、頻率),用于系統綜合判斷,能主動快速構建引起電壓異常的數學模型,起動快速安全切換邏輯,確保電源異常
    的頭像 發表于 07-19 11:17 ?471次閱讀

    可以用os_malloc() 分配多少內存?有哪些限制?

    我可以用 os_malloc() 分配多少內存?有哪些限制?
    發表于 07-15 06:32

    調用os_malloc異常重啟是什么原因導致的?

    )); return node; } 明明還有足夠內存空間的情況下,為何在os_malloc分配內存里異常重啟? 下面是我的重啟時候的log:recv json{\"datetime\"
    發表于 07-12 07:47

    使用system_show_malloc()檢查內存泄漏遇到異常怎么解決?

    我想使用system_show_malloc()檢查內存泄漏,但是當我調用該函數時,我得到了致命的異常: 致命異常 28 (LoadProhibitedCause): epc1
    發表于 07-10 06:32

    ESP32設置中文藍牙設備名稱異常顯示亂碼,原因是什么?

    ESP32 設置中文藍牙設備名稱異常顯示亂碼,原因是什么? 這是因為此時編輯器的中文編碼格式不是 UTF-8,需要把編輯器的編碼格式改成 UTF-8。
    發表于 06-13 06:21

    esp32s2FN4R2啟用內置的2M PSRAM后,不斷重啟怎么解決?

    如題,開啟外部PSRAM,檢測方式不論是auto-detect還是指定EspPsram32,編譯后都會不停重啟 試過改變其它選項,比如內存分配方式,不管是malloc(),還是
    發表于 06-11 08:56

    malloc和calloc功能來實現DAQ,在調試模式下調用calloc和malloc函數時似乎卡住了,為什么?

    我正在使用 malloc 和 calloc 功能來實現 DAQ。 我使用的是 TLE9893 系列芯片。 代碼編譯良好,但在調試模式下調用 calloc 和 malloc 函數時似乎卡住了。 我嘗試
    發表于 05-27 08:29

    下載程序后直接運行,SystemCoreClock異常怎么解決?

    下載程序后直接運行,SystemCoreClock異常
    發表于 04-15 08:14

    可以在RTOS的任何位置使用malloc申請內存了嗎?

    今天看了CubeIDE 1.7.0的release note ,里面寫的一條新特性是:Thread-safe malloc solution 這是否意味著我可以在RTOS的任何位置使用malloc申請內存了?
    發表于 04-03 07:23

    Stm32H7 spi帶來更大的adc噪聲,導致小信號異常值的原因?

    [Stm32H7]spi帶來更大的adc噪聲,導致小信號異常
    發表于 03-25 06:10

    STM32H743如何讓malloc自動分配到外部RAM中呢?

    本人試過在進入main之前修改啟動文件,增加SDRAM的初始化,并且將棧空間指定在內部防止初始化錯誤,程序還是死在Hardfault_Handler。還有什么辦法可以將malloc自動分配到外部RAM中呢
    發表于 03-13 07:14
    主站蜘蛛池模板: 美女扒开尿口给男人看的让 | 天天色啪 | 色狠狠网 | 一级黄免费 | 免费观看国产网址你懂的 | 欧美色图888 | 黄 色 毛片免费 | 操美女大逼逼 | 啪啪网视频 | 日本特黄绿像大片免费看 | 男子扒开美女尿口做羞羞的事 | 国产女人小便视频 | 亚洲zscs综合网站 | 日本二区免费一片黄2019 | 午夜影院免费体验 | 国产日韩精品一区二区在线观看 | 天堂网www在线观看 天堂网www在线资源中文 | 国产精品福利午夜一级毛片 | 天天干天天操天天添 | 精品女同同性视频很黄很色 | 欧美黄色免费看 | 五月月色开心婷婷久久合 | 亚洲国产情侣偷自在线二页 | 波多野结衣在线观看一区二区 | 免费一级欧美片片线观看 | 思思99re66在线精品免费观看 | 男女草逼视频 | 欧美性色黄大片四虎影视 | 大片毛片女女女女女女女 | 天天干夜夜怕 | 啪啪激情综合 | 色一乱一伦一区一直爽 | free性乌克兰高清videos | 天堂v网| 天天曰夜夜曰 | a成人在线 | 精品久久久久久 | 日本xxxⅹ69xxxx护士 | 欧美另类69xxxxx性欧 | 岬奈奈美在线 国产一区 | 天天碰天天操 |