欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語言tips-野指針-創(chuàng)新互聯(lián)

.寫在最前

最近因?yàn)楣ぷ餍枰_始重新學(xué)c語言,越學(xué)越發(fā)現(xiàn)c語言深不可測,當(dāng)初用python輕輕松松處理的一些數(shù)據(jù),但是c語言寫起來卻異常的復(fù)雜,這個(gè)板塊就記錄一下我的c語言復(fù)習(xí)之路

創(chuàng)新互聯(lián)建站是專業(yè)的桐鄉(xiāng)網(wǎng)站建設(shè)公司,桐鄉(xiāng)接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行桐鄉(xiāng)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
1. 什么是野指針?

如果一個(gè)指針指向的內(nèi)存沒有訪問權(quán)限,或者指向一塊已經(jīng)釋放掉的內(nèi)存,那么就無法對(duì)該指針進(jìn)行操作,這樣的指針稱為野指針( Wild Pointer)

2. 出現(xiàn)野指針的情況 指向沒有訪問權(quán)限的內(nèi)存
#includeint main()
{char* str ;
    gets(str);
    puts(str);
    return 0;
}

str此時(shí)并沒被分配內(nèi)存,當(dāng) gets() 函數(shù)試圖將讀取到的字符串寫入這塊內(nèi)存時(shí),必然會(huì)發(fā)生錯(cuò)誤??梢愿某梢韵麓a

#includeint main()
{char* str = (char *)malloc(20 * sizeof(char);
    gets(str);
    puts(str);
    free(str);
    return 0;
}
指向釋放掉的內(nèi)存
#include#includeint main()
{char* str  = (char *)malloc(20 * sizeof(char));
    gets(str);
    puts(str);
    free(str);
    puts(str);
    return 0;
}

在這里插入圖片描述

可以看到當(dāng)訪問被釋放的內(nèi)存,會(huì)出現(xiàn)奇怪的值, 這是因?yàn)?code>free()只是釋放掉了動(dòng)態(tài)分配的內(nèi)存, 但并未改變str的值,str的值不是NULL,它仍然指向被釋放掉的內(nèi)存,這就提醒我們,使用free()釋放內(nèi)存的同時(shí)要將指針置為 NULL,否則下次就無法判斷指向的內(nèi)存是否有效

函數(shù)外部指針指向函數(shù)內(nèi)部的變量
#include#includevoid func(char *a)
{char* b = "jh666";
    a = b;
}

int main()
{char *a = NULL;
    func(a);
    puts(a);
    return 0;
}

此時(shí)b是在函數(shù)定義的局部變量,當(dāng)函數(shù)調(diào)用后這個(gè)變量就會(huì)給釋放掉,然后a的指向還是這個(gè)地址,那么它取得的值當(dāng)然是未知的

3. 如何規(guī)避野指針
  • 指針變量如果暫時(shí)不需要賦值,一定要初始化為 NULL,因?yàn)槿魏沃羔樧兞縿偙粍?chuàng)建時(shí)不會(huì)自動(dòng)成為 NULL指針,它的缺省值是隨機(jī)的
  • 當(dāng)指針指向的內(nèi)存被釋放掉時(shí),要將指針的值設(shè)置為 NULL,因?yàn)?free() 只是釋放掉了內(nèi)存,并為改變指針的值。

值得說的是把一個(gè)指針初始化為NULL肯定是比它賦值為隨機(jī)是好的,從C語言tips-NULL指針和void指針我們可以知道c語言的很多函數(shù)內(nèi)部源碼是有很多對(duì)NULL的操作的。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁名稱:C語言tips-野指針-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://chinadenli.net/article4/cdhiie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化服務(wù)器托管、品牌網(wǎng)站設(shè)計(jì)小程序開發(fā)、網(wǎng)站改版商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)