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

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

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

3天內不再提示

簡述C語言中什么是懸空指針和野指針

GReq_mcu168 ? 來源:嗶哩嗶哩 ? 作者:C語言_編程俱樂部 ? 2021-03-18 11:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

提起C語言大部分開發者很自然就會想到指針二字,沒錯,作為C的核心和靈魂,它的地位咱們就不再贅述了,今天我們想跟大家講的是指針中的兩個特有名詞:“懸空指針”和“野指針”。

1 懸空指針

C語言中的指針可以指向一塊內存,如果這塊內存稍后被操作系統回收(被釋放),但是指針仍然指向這塊內存,那么,此時該指針就是“懸空指針”。下面這段C語言代碼是一個例子,請看:

void *p = malloc(size);assert(p);free(p); // 現在 p 是“懸空指針” C語言中的“懸空指針”會引發不可預知的錯誤,而且這種錯誤一旦發生,很難定位。這是因為在 free(p) 之后,p 指針仍然指向之前分配的內存,如果這塊內存暫時可以被程序訪問并且不會造成沖突,那么之后使用 p 并不會引發錯誤。

最難調試的 bug 總是不能輕易復現的 bug,對不?

所以在實際的C語言程序開發中,為了避免出現“懸空指針”引發不可預知的錯誤,在釋放內存之后,常常會將指針 p 賦值為 NULL:

void *p = malloc(size);assert(p);free(p); // 避免“懸空指針”p = NULL; 這么做的好處是一旦再次使用被釋放的指針 p,就會立刻引發“段錯誤”,程序員也就能立刻知道應該修改C語言代碼了。

2野指針

上面我們講的“懸空指針”是指向被釋放內存的指針,“野指針”則是不確定其具體指向的指針?!耙爸羔槨弊畛碜杂谖闯跏蓟闹羔?,例如下面這段C語言代碼:

void *p;// 此時 p 是“野指針” 因為“野指針”可能指向任意內存段,因此它可能會損壞正常的數據,也有可能引發其他未知錯誤,所以C語言中的“野指針”危害性甚至比“懸空指針”還要嚴重。在實際的C語言程序開發中,定義指針時,一般都要盡量避免“野指針”的出現(賦初值):

void *p = NULL;void *data = malloc(size);這兩點內容,是C語言比較重要的內容,希望大家在編碼的時候一定要注意。

編輯:jq

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

    關注

    180

    文章

    7632

    瀏覽量

    141503

原文標題:C語言中的“懸空指針”和“野指針”是什么意思?

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    指針式萬用表使用指南

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

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

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

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

    指針被釋放后,是不是就變成了空指針?有好多同學提出了這樣的問題。 借用《C專家編程》上面的一段代碼,可以很好的解釋這個問題。 ? ? #include int main(){ char *s
    的頭像 發表于 01-22 09:23 ?381次閱讀

    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>調用匯編類成員函數

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

    C語言中申請的堆內存能不能自動釋放?每次都要手動 free 太麻煩,也容易忘記。 學過 C++ 的同學,應該首先能想到智能指針。 但是這是C
    的頭像 發表于 11-27 09:33 ?505次閱讀

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

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

    C語言指針學習筆記

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

    C語言中的socket編程基礎

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

    C語言指針運算符詳解

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

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

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

    C語言指針詳細解析

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

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

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

    面試???1:函數指針指針函數、數組指針指針數組

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

    簡述指針式萬用表測二極管的方法

    指針式萬用表是一種常用的電子測量工具,可以測量電壓、電流、電阻等多種參數。在測量二極管時,指針式萬用表可以利用其電阻檔位來測量二極管的正向電阻和反向電阻,從而判斷二極管的好壞。以下是測量方法: 準備
    的頭像 發表于 07-24 16:07 ?3775次閱讀
    主站蜘蛛池模板: 久久夜色精品国产噜噜小说 | 国产香蕉视频在线观看 | 亚洲精品在线不卡 | 国产午夜剧场 | 欧美三级大片在线观看 | 免费 视频 | 在线你懂的 | 国产婷婷色一区二区三区深爱网 | 国产午夜影院 | 99精品热视频 | 99久久99久久久精品齐齐鬼色 | 酒色成人| 亚洲午夜顶级嘿嘿嘿影院 | 久久久婷婷亚洲5月97色 | 国产情侣自拍小视频 | 久久两性视频 | 中文字幕不卡免费高清视频 | 丁香亚洲综合五月天婷婷 | 六月综合网 | 亚洲香蕉国产高清在线播放 | 日本黄色www | 中文字幕一区二区三区在线播放 | 九色国产在视频线精品视频 | 欧美午夜色视频国产精品 | 久久久久久久综合色一本 | 久久99精品一级毛片 | 校园 春色 欧美 另类 小说 | 荡女妇边被c边呻吟久久 | 午夜手机看片 | 亚洲最大毛片 | 亚洲综合色在线 | 毛片区 | 亚洲精品在线不卡 | 最近2018中文字幕免费看手机 | 欧美不卡在线视频 | 亚洲第八页 | 亚洲欧美在线播放 | 日本不卡视频一区二区三区 | 精品国产一二三区 | 欧美在线专区 | 日本特黄色大片 |