一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

懸空指針能不能訪問?

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2023-08-17 17:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

指針被釋放后,是不是就變成了空指針?這是很多剛接觸指針的同學(xué)存在的誤區(qū)。

我們還是寫個(gè)代碼看下:

char *p = (char *)malloc(sizeof(char) * 128);
定義一個(gè)指針,然后在堆空間申請(qǐng)一塊內(nèi)存,這種賦值方式就表示指針指向堆空間,畫出來就是這樣的。

34cbc742-3cdd-11ee-ac96-dac502259ad0.png ?

內(nèi)存用完之后,還得養(yǎng)成釋放的習(xí)慣,如果不釋放,那這塊內(nèi)存一直被占有,其他人就用不了,這就是所謂的內(nèi)存泄漏。

釋放內(nèi)存使用函數(shù)free,參數(shù)就是這塊內(nèi)存的地址。
free(p);
在圖上的表現(xiàn)就是,這塊內(nèi)存自由了,如果后面有其他地方要使用內(nèi)存,那操作系統(tǒng)完全可以把這塊內(nèi)存再分配出去。

34fdaeba-3cdd-11ee-ac96-dac502259ad0.png ?

此時(shí),指針p沒有任何的變化,它里面還是保存剛才的地址0x100,只是0x100這塊內(nèi)存已經(jīng)被釋放了,p并不是空指針,我們可以把它稱作懸空指針,那懸空指針能不能訪問?
char*p=(char*)malloc(sizeof(char) * 128);
free(p);
strcpy(p,"helloworld");
如果你強(qiáng)行去訪問的話,就會(huì)出現(xiàn)一些未知的問題。

我們?cè)趯W(xué)習(xí)的時(shí)候,寫的代碼通常比較少,內(nèi)存使用的也不多,所以大部分情況下你去訪問已經(jīng)釋放的內(nèi)存好像也沒什么問題,其實(shí)這是一個(gè)誤區(qū)。

如果把它放到項(xiàng)目中,代碼量比較大,內(nèi)存使用比較多,就會(huì)導(dǎo)致一系列意想不到的問題。

所以正確的做法應(yīng)該是,內(nèi)存釋放后,再加上一條語句:
p = NULL;
把p變成空指針。

雖然空指針也不能通過 * 去訪問,但是空指針是可控的,有的時(shí)候加上一些判斷,就能有效的防止一些意外的發(fā)生。






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

    關(guān)注

    0

    文章

    40

    瀏覽量

    9394

原文標(biāo)題:懸空指針和空指針

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    C語言中結(jié)構(gòu)體能不能相加

    C語言中,結(jié)構(gòu)體能不能相加?
    的頭像 發(fā)表于 12-19 17:04 ?1653次閱讀
    C語言中結(jié)構(gòu)體<b class='flag-5'>能不能</b>相加

    TPA6013A4SEDIFF PIN和SEMAX PIN能不能懸空?

    在BTL模式下驅(qū)動(dòng)揚(yáng)聲器時(shí),VOLUME引腳是控制增益的唯一引腳. SEDIFF PIN和SEMAX PIN能不能懸空
    發(fā)表于 09-29 09:10

    ADS52J90EVM TX_TRIG管腳懸空能不能使用?

    請(qǐng)問TX_TRIG管腳懸空能不能使用?
    發(fā)表于 11-14 07:41

    TTL與非門如果有多余輸入端能不能接地?

    TTL與非門如果有多余輸入端能不能接地?為什么?TTL或非門有多余輸入端能不能接Vcc或懸空?
    發(fā)表于 04-28 11:00

    電池能不能修復(fù)?

    電池能不能修復(fù)? 電池修復(fù)作為一個(gè)新生事物,許多人對(duì)它不了解,也有許多人對(duì)它一知半解。那么電池到底能不能修復(fù)呢?
    發(fā)表于 11-23 10:40 ?1220次閱讀

    光耦(TLP521-4)能不能轉(zhuǎn)換電壓?

    光耦(TLP521-4)能不能轉(zhuǎn)換電壓?
    發(fā)表于 05-31 11:15 ?4415次閱讀

    恒生電子總裁劉曙峰:一個(gè)特別重要的挑戰(zhàn)就是能不能跟得上這個(gè)變化

    “金融科技行業(yè)的最大風(fēng)險(xiǎn)就是跟不上變化。新技術(shù)來了,技術(shù)變革了,你能不能跟得上?你能不能跟得上業(yè)務(wù)的變化?”
    的頭像 發(fā)表于 08-26 17:27 ?4346次閱讀

    新能源的車到底能不能買_新能源汽車的利與弊

     那么新能源汽車到底能不能買??jī)?nèi)行人說出實(shí)情,后悔沒有早知道
    的頭像 發(fā)表于 07-30 09:59 ?4175次閱讀

    諧波治理到底能不能節(jié)電

    諧波治理到底能不能節(jié)電?”這是我們做電能質(zhì)量行業(yè)經(jīng)常會(huì)被問到的一個(gè)問題。隨著國(guó)家對(duì)節(jié)能減排項(xiàng)目的大力支持,有不少商業(yè)人士一擁而上加入到節(jié)能行業(yè),想要分得節(jié)能市場(chǎng)的一杯羹。那么,通過諧波治理到底能不能實(shí)現(xiàn)節(jié)能的效果呢?
    發(fā)表于 04-23 15:50 ?3938次閱讀

    大型輥壓機(jī)軸磨損能不能現(xiàn)場(chǎng)維修?

    大型輥壓機(jī)軸磨損能不能現(xiàn)場(chǎng)維修?
    發(fā)表于 06-23 15:35 ?1次下載

    C語言中的懸空指針和野指針是什么意思?

    提起C語言大部分開發(fā)者很自然就會(huì)想到指針二字,沒錯(cuò),作為C的核心和靈魂,它的地位咱們就不再贅述了,今天我們想跟大家講的是指針中的兩個(gè)特有名詞:“懸空指針”和“野
    的頭像 發(fā)表于 02-09 17:20 ?1422次閱讀

    指針能不能作為循環(huán)變量?

    指針能不能作為循環(huán)變量?
    的頭像 發(fā)表于 02-16 18:11 ?1303次閱讀

    物聯(lián)網(wǎng)流量卡到底能不能用?

    物聯(lián)網(wǎng)流量卡到底能不能用?
    的頭像 發(fā)表于 08-28 09:40 ?7361次閱讀
    物聯(lián)網(wǎng)流量卡到底<b class='flag-5'>能不能</b>用?

    拼接屏能不能觸屏操作?

    拼接屏能不能直接觸屏操作,小編回答可以的,實(shí)際上很多客戶購(gòu)買拼接屏?xí)r都會(huì)提出拼接屏能不能加觸摸的功能?我們回復(fù)是可以的,那是一種怎樣的原理呢? 拼接屏一般是用來大屏展示,用來播放文字、圖像等內(nèi)容
    的頭像 發(fā)表于 09-11 14:36 ?7667次閱讀

    直流電源到底能不能驅(qū)動(dòng)交流燈泡發(fā)光?

    我在網(wǎng)上經(jīng)??吹接芯W(wǎng)友在問直流電源到底能不能驅(qū)動(dòng)交流燈泡發(fā)光?事實(shí)勝于雄辯,這次專門準(zhǔn)備了一盒干電池,來實(shí)際演示一下,看看能不能發(fā)光。
    的頭像 發(fā)表于 11-13 15:07 ?6978次閱讀
    直流電源到底<b class='flag-5'>能不能</b>驅(qū)動(dòng)交流燈泡發(fā)光?