最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談c/c++中使用指針需要注意的問題

 更新時(shí)間:2016年06月01日 11:09:41   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談c/c++中使用指針需要注意的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

一、使用指針的時(shí)候需要注意幾點(diǎn):

• 分配空間

• 初始化

• 釋放

二、常見的錯(cuò)誤有幾種:

1)內(nèi)存分配未成功,卻使用了它

編程新手常犯這種錯(cuò)誤,因?yàn)樗麄儧]有意識(shí)到內(nèi)存分配會(huì)不成功。常用解決辦法是,使用內(nèi)存之前檢查指針是否為Null。

如果指針p是函數(shù)的參數(shù),那么在函數(shù)的入口處用assert(p != NULL)進(jìn)行檢查。如果使用malloc或new來申請(qǐng)內(nèi)存,應(yīng)該用if(p == NULL)或if(p != NULL)進(jìn)行放錯(cuò)處理。

2)內(nèi)存分配雖然成功,但是尚未初始化就引用它

犯這種錯(cuò)誤主要有個(gè)起因:一是沒有初始化的觀念;二是誤以為內(nèi)存的缺省初值全為零,導(dǎo)致引用初值錯(cuò)誤(eg. char p[]={‘\0'}).內(nèi)存的缺省初值究竟是什么并沒有統(tǒng)一的標(biāo)準(zhǔn),盡管有些時(shí)候?yàn)榱?,所以無論用何種方式創(chuàng)建數(shù)組,都別忘了賦初值,即便是賦零值也不可省略,不要嫌麻煩。

3)內(nèi)存分配成功并且已經(jīng)初始化,但操作越過了內(nèi)存的邊界

例如在使用數(shù)組是經(jīng)常發(fā)生下標(biāo)”多1”或者“少1”的操作,特別是在for循環(huán)語句中,循環(huán)次數(shù)很容易搞錯(cuò),導(dǎo)致數(shù)組操作越界。

4)忘記了釋放內(nèi)存,造成內(nèi)存泄露

 含有這種錯(cuò)誤的函數(shù)每被調(diào)用一次就丟失一塊內(nèi)存,剛開始時(shí)系統(tǒng)的內(nèi)存充足。你看不到錯(cuò)誤。當(dāng)程序所占內(nèi)存大時(shí),系統(tǒng)出現(xiàn)提示:內(nèi)存耗盡。動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),程序中malloc與free的使用次數(shù)一定要相同,否則肯定有錯(cuò)誤

5)釋放了內(nèi)存卻繼續(xù)使用它

出現(xiàn)這種情況,有三個(gè)原因:<1>程序中的對(duì)象調(diào)用關(guān)系過于復(fù)雜,實(shí)在難以搞清楚某個(gè)對(duì)象究竟是否已經(jīng)釋放了內(nèi)存,此時(shí)應(yīng)該重新設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),從根本上解決對(duì)象管理的混亂局面。<2>函數(shù)的return語句寫錯(cuò)了,注意不要返回指向“棧內(nèi)存”的“指針”或者“引用”,因?yàn)樵搩?nèi)存在函數(shù)體結(jié)束時(shí)被自動(dòng)銷毀。<3>使用free或delete釋放了內(nèi)存后,沒有將指針設(shè)置為NULL。導(dǎo)致產(chǎn)生“野指針”

[規(guī)則1] 用malloc或new申請(qǐng)內(nèi)存之后,因該立即檢查指針值是否為NULL。防止使用指針值為NULL的內(nèi)存。

[規(guī)則2] 不要忘記為數(shù)組和動(dòng)態(tài)內(nèi)存賦初值。防止將未被初始化的內(nèi)存作為右值使用。

[規(guī)則3] 避免數(shù)字或指針的下標(biāo)越界,特別要當(dāng)心發(fā)生“多1”或者“少1”操作

[規(guī)則4] 動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),防止內(nèi)存泄漏

[規(guī)則5] 用free或delete釋放了內(nèi)存之后,立即將指針設(shè)置為NULL,防止“野指針”

以上這篇淺談c/c++中使用指針需要注意的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

安义县| 油尖旺区| 永济市| 灵寿县| 南平市| 新郑市| 贺州市| 绥德县| 精河县| 勐海县| 马山县| 全南县| 古浪县| 格尔木市| 大新县| 常宁市| 岱山县| 台南市| 桃江县| 西丰县| 德江县| 乌兰浩特市| 仁怀市| 山西省| 错那县| 郁南县| 石嘴山市| 垦利县| 南昌县| 沅陵县| 中山市| 山丹县| 正宁县| 太谷县| 阿拉善左旗| 贡嘎县| 宝应县| 阜新市| 邹平县| 缙云县| 天镇县|