chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

學益得智能硬件 ? 來源:學益得智能硬件 ? 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 指向了一塊堆內(nèi)存,把字符串 helloworld 拷貝到堆內(nèi)存中,然后釋放了 s。

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

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

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

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

所以下面的判斷語句成立,繼續(xù)執(zhí)行拷貝操作。

由于 s 指向的內(nèi)存已經(jīng)被釋放掉,強行往里面拷貝,就會出現(xiàn)意想不到的錯誤。

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

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

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

    關(guān)注

    1

    文章

    484

    瀏覽量

    71573
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4921

    瀏覽量

    72199

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    rt_tick_increase 引用指針變量未判斷其是否為

    指針變量使用之前沒有判斷是否為,萬一rt_system_scheduler_start此函數(shù)調(diào)用之前來滴答定時器的中斷了,這樣操作是不是會有風險
    發(fā)表于 10-09 08:07

    函數(shù)指針的六個常見應(yīng)用場景

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

    RTOS中的本地存儲指針使用

    本地存儲指針是RTOS中的一個重要特性,增強了任務(wù)管理和數(shù)據(jù)處理能力。在RTOS上下文中,本地存儲是指存儲在本地的特定任務(wù)或?qū)ο蟮臄?shù)據(jù)。通常與任務(wù)本地存儲(Task Local Storage,TLS)有關(guān),其中數(shù)據(jù)存儲在任務(wù)控制塊(TCB)中,允許每個任務(wù)具有私有的、特定于任務(wù)的變量。
    的頭像 發(fā)表于 02-28 16:33 ?1061次閱讀
    RTOS中的本地存儲<b class='flag-5'>指針</b>使用

    指針式萬用表的正確使用

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

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

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

    指針式萬用表與數(shù)字萬用表對比

    在電子維修和測試領(lǐng)域,萬用表是不可或缺的工具。它們能夠測量電壓、電流、電阻等多種電氣參數(shù)。市場上主要有兩種類型的萬用表:指針式萬用表和數(shù)字萬用表。 指針式萬用表 工作原理 指針式萬用表,也稱為模擬
    的頭像 發(fā)表于 01-23 09:31 ?3203次閱讀

    指針式萬用表功能介紹

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

    指針式萬用表讀數(shù)技巧

    1. 了解指針式萬用表的基本構(gòu)造 在使用指針式萬用表之前,了解其基本構(gòu)造是非常重要的。指針式萬用表主要由表頭、量程選擇旋鈕、插孔和表盤組成。表頭是測量的核心部分,它通過指針的偏轉(zhuǎn)來顯示
    的頭像 發(fā)表于 01-22 18:20 ?2239次閱讀

    指針式萬用表和數(shù)字萬用表哪個好

    在電子測量領(lǐng)域,萬用表是工程師和技術(shù)人員不可或缺的工具。它們能夠測量電壓、電流、電阻等多種電氣參數(shù)。市場上主要有兩種類型的萬用表:指針式萬用表和數(shù)字萬用表。 1. 指針式萬用表 1.1 工作原理
    的頭像 發(fā)表于 01-22 17:28 ?6193次閱讀

    指針式萬用表使用指南

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

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

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

    指針數(shù)組和二維數(shù)組有沒有區(qū)別

    指針數(shù)組和二維數(shù)組有沒有區(qū)別?比如這樣的兩個代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][6
    的頭像 發(fā)表于 11-24 11:12 ?681次閱讀

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

    C語言指針講解
    發(fā)表于 11-20 14:10 ?6次下載

    C語言指針學習筆記

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

    C語言指針運算符詳解

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