女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

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

指針被釋放后,是不是就變成了空指針?有好多同學提出了這樣的問題。

借用《C專家編程》上面的一段代碼,可以很好的解釋這個問題。

#include 


int main()
{
    char *s = (char *)malloc(128);


    strcpy(s, "helloworld");


free(s);


    if (s != NULL)
        strcpy(s, "12345");


    return 0;
}

這段代碼大家看下有沒有問題,能不能順利運行?

前面三行都沒有問題,指針 s 指向了一塊堆內存,把字符串 helloworld 拷貝到堆內存中,然后釋放了 s。

問題就出在這,很多同學不理解,指針 s 被釋放了,是不是就變成了空指針?

如果變成了空指針,那下面的判斷就不會成立,也就不會執行拷貝操作。

其實這樣的理解是有問題的。

指針 s 指向了堆內存,free(s) 準確的講,是把 s 指向的內存釋放掉,這個操作對 s 本身并沒有影響,s 里面保存的還是原來那塊內存的地址,并不是空。

所以下面的判斷語句成立,繼續執行拷貝操作。

由于 s 指向的內存已經被釋放掉,強行往里面拷貝,就會出現意想不到的錯誤。

養成良好的編程習慣就是指針被釋放掉后,手動把它變成空,空指針比野指針、懸空指針更可控。

指針是C語言的精髓,如果你還是覺得模棱兩可,不妨看下這套播放量近 20 萬的指針教程,課程以及資料全部開源,看完后一定會讓你的指針水平達到一個更高的級別。

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

    關注

    1

    文章

    484

    瀏覽量

    70994
  • 代碼
    +關注

    關注

    30

    文章

    4886

    瀏覽量

    70253

原文標題:指針被釋放后,是不是變成了空指針

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    函數指針的六個常見應用場景

    函數指針在嵌入式開發中有著廣泛的應用,它讓代碼更加靈活,減少冗余,提高可擴展性。很多時候,我們需要根據不同的情況動態調用不同的函數,而函數指針正是實現這一需求的重要工具。本文將介紹六個常見的函數指針
    的頭像 發表于 04-07 11:58 ?346次閱讀
    函數<b class='flag-5'>指針</b>的六個常見應用場景

    指針式萬用表的正確使用

    指針式萬用表可以測量交/直流電壓、交/直流電流、直流電阻、晶體管直流電流放大系數、晶體管反向截止電流、負載電流、負載電壓等。 一、直流電壓測量 將功能開關置于“+DC”位置,量程開關選放在接近
    的頭像 發表于 02-13 14:00 ?743次閱讀

    指針式萬用表測量電壓技巧

    在電子維修和電氣工程領域,準確測量電壓是至關重要的。指針式萬用表因其直觀的讀數和可靠性而廣受歡迎。 1. 了解指針式萬用表 在開始測量之前,了解萬用表的基本構造和功能是必要的。指針式萬用表通常有兩個
    的頭像 發表于 01-23 09:32 ?930次閱讀

    指針式萬用表功能介紹

    在電子工程和電氣維修領域,萬用表是不可或缺的工具之一。它能夠快速測量電路中的電壓、電流和電阻等參數,幫助工程師和技術人員診斷和修復電路問題。 指針式萬用表的基本原理 指針式萬用表的工作原理
    的頭像 發表于 01-23 09:12 ?1411次閱讀

    指針式萬用表使用指南

    一、指針式萬用表簡介 指針式萬用表是一種傳統的電子測量工具,因其表頭指針的擺動來顯示測量結果而得名。與數字萬用表相比,指針式萬用表在某些情況下能提供更直觀的讀數,尤其是在測量快速變化的
    的頭像 發表于 01-22 17:25 ?1299次閱讀

    指針式萬用表測量精度比較

    指針式萬用表的核心是一個可變電阻器(分壓器)和一個可動的指針。當測量電壓或電流時,通過分壓器的電阻值會改變,從而改變通過指針的電流,使指針在刻度盤上移動。
    的頭像 發表于 01-22 17:23 ?621次閱讀

    C語言程序設計教程第4版第8講:指針

    C語言指針講解
    發表于 11-20 14:10 ?5次下載

    C語言指針學習筆記

    本文從底層內存分析,徹底讓讀者明白C語言指針的本質。
    的頭像 發表于 11-05 17:40 ?556次閱讀
    C語言<b class='flag-5'>指針</b>學習筆記

    C語言指針運算符詳解

    在C語言中,當你有一個指向數組中某個元素的指針時,你可以對該指針執行某些算術運算,例如加法或減法。這些運算可以用來遍歷數組中的元素,如ptr[i]等價于*(ptr + i)。然而,如果你的操作使得指針指向了數組以外的位置(除了數
    的頭像 發表于 10-30 11:16 ?660次閱讀

    電流計指針偏轉方向是正極還是負極

    電流計指針的偏轉方向并非簡單地指向正極或負極,而是取決于電流的流入方向以及電流計正負極的連接方式。以下是對這一問題的分析: 一、電流流入方向與指針偏轉的關系 常規情況 : 對于常規的電流計(假設其
    的頭像 發表于 09-19 15:18 ?8704次閱讀

    C語言指針詳細解析

    可以對數據本身,也可以對存儲數據的變量地址進行操作。 指針是一個占據存儲空間的實體在這一段空間起始位置的相對距離值。在C/C++語言中,指針一般認為是指針變量,
    發表于 09-14 10:03

    面試常考+1:函數指針指針函數、數組指針指針數組

    在嵌入式開發領域,函數指針指針函數、數組指針指針數組是一些非常重要但又容易混淆的概念。理解它們的特性和應用場景,對于提升嵌入式程序的效率和質量至關重要。一、
    的頭像 發表于 08-10 08:11 ?1331次閱讀
    面試常考+1:函數<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>函數、數組<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>數組

    Lombok注解引發的指針問題分析

    一、問題描述 在一次上線,日志中出現指針的報錯,但是報錯代碼位置以及相應工具類未進行過修改,接下來進一步分析。 以下為報錯堆棧信息
    的頭像 發表于 06-23 09:30 ?1306次閱讀
    Lombok注解引發的<b class='flag-5'>空</b><b class='flag-5'>指針</b>問題分析

    面試中的高頻問題:指針函數與函數指針,你能完美應對嗎?

    的內存分析,徹底讓大家明白指針的本質。建議大家靜下心來再復習一遍。一、指針變量首先要明白指針是一個變量,為此寫了如下代碼來驗證之:運行可以看
    的頭像 發表于 06-22 08:11 ?2201次閱讀
    面試中的高頻問題:<b class='flag-5'>指針</b>函數與函數<b class='flag-5'>指針</b>,你能完美應對嗎?

    Keil+C51中對雙數據指針的直接利用

    Keil+C51中對雙數據指針的直接利用
    發表于 06-18 10:15 ?0次下載