色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

C語言中申請的堆內存能不能自動釋放

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-11-27 09:33 ? 次閱讀

C語言中申請的堆內存能不能自動釋放?每次都要手動 free 太麻煩,也容易忘記。

學過 C++ 的同學,應該首先能想到智能指針。

但是這是C語言,沒有類和對象、構造析構這些技術,想要自動釋放很難。

下面給大家介紹一種黑科技。

之前我們講過 GNU 的 attribute 屬性,里面可以是 packed unused 等等,還有一個,叫 cleanup。

cleanup的作用就是當其聲明的變量離開了生命周期,就會調用指定的函數。

這剛好滿足了我們的要求。

比如這樣的代碼,給 str 申請了內存,但是整個代碼中也沒有釋放,妥妥的內存泄漏。

定義 str 的時候,可以在后面加上 attribute cleanup,指定函數 func,意思就是,當變量 str 生命周期結束的時候,會調用 func 函數。換句話說,只要 main 函數結束了,就會調用 func 函數。

func 函數有個參數,是變量 str 的地址,可以寫成 char ** 類型,在函數的內部可以釋放剛才申請的堆內存。

這樣在 main 函數結束的時候,就會自動調用 func 函數釋放堆內存,有點智能指針的意思。

有了 func 函數,在任意地方定義指針,只要加上 attribute 屬性,函數運行結束,就能自動釋放堆內存。

attribute 屬性并不是 C 標準內容,屬于 GNU 擴展功能,不過也不排除后面被加到標準里面的可能性。

了解一下就行,不建議使用,太過于冷門。

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

    關注

    8

    文章

    3111

    瀏覽量

    75016
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140511
  • 函數
    +關注

    關注

    3

    文章

    4371

    瀏覽量

    64266

原文標題:堆內存也能自動釋放

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

收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    STM32C031F4 FLASH存儲器讀寫例程各位高能不能提供一個?

    STM32C031F4FLASH存儲器 讀寫例程 各位高能不能提供一個謝謝大家
    發表于 03-13 07:37

    分析C語言代碼結構的設計問題

    來分析一個C語言代碼結構的設計問題。 這段代碼,使用了兩次malloc,分別給 p1 和 p2 申請內存。用完后,內存
    的頭像 發表于 02-11 09:31 ?321次閱讀

    指針被釋放后就變成了空指針嗎

    ;} ? ? 這段代碼大家看下有沒有問題,能不能順利運行? 前面三行都沒有問題,指針 s 指向了一塊內存,把字符串 helloworld 拷貝到
    的頭像 發表于 01-22 09:23 ?339次閱讀

    ADS8568能不能使用單電源供電?

    ADS8568能不能使用單電源供電,即HVSS接地,HVDD接+12V,能正常工作嗎?我現在用的硬件模式,采不到數據。。
    發表于 01-17 06:14

    EE-62:在C語言中訪問短字內存

    電子發燒友網站提供《EE-62:在C語言中訪問短字內存.pdf》資料免費下載
    發表于 01-07 14:02 ?0次下載
    EE-62:在<b class='flag-5'>C</b><b class='flag-5'>語言中</b>訪問短字<b class='flag-5'>內存</b>

    EE-128:C語言中的DSP:從C調用匯編類成員函數

    電子發燒友網站提供《EE-128:C語言中的DSP:從C調用匯編類成員函數.pdf》資料免費下載
    發表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>語言中</b>的DSP:從<b class='flag-5'>C</b>調用匯編類成員函數

    C6748的McBSP接口能不能讀ad1271的轉化數據?

    AD1271可以工作在兩種模式,一種是SPI;另一種是Frame Sync,我如果用C6748的McBSP接口能不能讀ad1271的轉化數據?
    發表于 01-01 07:22

    C語言中的頭文件能不能重復包含

    C語言中的頭文件能不能重復包含? 比如代碼寫成這樣,stdio.h 連續包含了兩次。 #include #include int main(){ printf("helloworld
    的頭像 發表于 11-26 17:19 ?515次閱讀

    使用C語言實現函數模板

      用C語言能不能實現一個通用的函數,既能完成整數的相加,又能完成浮點數的相加?
    的頭像 發表于 11-09 11:38 ?876次閱讀

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的通信
    的頭像 發表于 11-01 16:51 ?1073次閱讀

    一體成型電感外殼破損還能不能

    電子發燒友網站提供《一體成型電感外殼破損還能不能用.docx》資料免費下載
    發表于 10-31 10:57 ?0次下載

    UTB定位技術能不能精準定位

    在當今科技日新月異的時代,定位技術以其廣泛的應用場景和不斷提升的精度,成為了多個領域的核心支撐。其中,UTB定位技術以其高精度、低延遲和高抗干擾性等特點,在眾多定位技術中脫穎而出,成為精準定位領域的佼佼者。那么,UTB定位技術到底能不能精準定位呢?下面就給大家具體介紹一下關于UTB定位技術。
    的頭像 發表于 09-03 10:07 ?1009次閱讀

    c語言中從左到右結合怎么看

    C語言中,操作符的結合性(Associativity)是指當操作符在表達式中連續出現時,它們如何與操作數結合的順序。對于大多數二元操作符(即需要兩個操作數的操作符),C語言遵循兩種基
    的頭像 發表于 08-20 11:42 ?1490次閱讀

    TL331能不能防反接,負向耐壓多少?

    請問一下,TL331能不能防反接,負向耐壓多少?還請告知一下?
    發表于 08-08 06:39

    請問esp32能不能自動找到信號最強的wifi ap進行連接?

    你好,我的設置好多wifi ap 熱點,他們的ssid 和密碼 都是相同。請問 esp32 能不能自動找到信號最強的wifi ap 進行連接。謝謝。
    發表于 06-13 07:33
    主站蜘蛛池模板: 两个客户一起吃我的奶 | 亚洲XXX午休国产熟女屁 | 嗯啊…跟校草在教室里做h 嗯 用力啊 嗯 c我 啊哈老师 | 精品无码久久久久久国产百度 | 陈红下面又紧又小好爽 | 天美传媒色情原创精品 | YELLOW日本动漫高清免费 | 伊人久久大香线蕉综合电影 | 精品无码久久久久久久动漫 | 美女张开腿让男人桶爽无弹窗 | 祺鑫WRITEAS流出来了 | 久久久精品免费免费直播 | 国产精品成人免费视频99 | 男女车车的车车网站W98免费 | 日本一本二本三区免费免费高清 | 一二三四高清中文版视频 | 扒开美女下面粉嫩粉嫩冒白浆 | 国产51麻豆二区精品AV视频 | 一区二区视频在线观看高清视频在线 | 国产激情精品久久久久久碰 | 欧美含羞草免费观看全部完 | 伊人激情综合网 | 国产爱豆剧果冻传媒在线 | A级毛片高清免费网站不卡 a级毛片高清免费视频 | bl高h乱肉辣文 | beeg日本老师 | 精品无码久久久久久动漫 | 国产精品A8198V久久A片 | 日本无码毛片久久久九色综合 | 小草视频免费观看在线 | 天堂在线亚洲精品专区 | 亚洲精品久久久午夜麻豆 | 花蝴蝶在线高清视频观看免费播放 | 免费a视频在线观看 | 儿媳妇完整版视频播放免费观看 | 白银谷在线观看 | 在线观看国产高清免费不卡 | 国产精品日本无码久久一老A | caoporn 免费视频 | 2021乱码精品公司 | 韩日午夜在线资源一区二区 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品