国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言new操作的安全性分析

2020-02-24 14:28:51
字體:
來源:轉載
供稿:網(wǎng)友

說到C語言相信大家都很熟悉,我們在使用malloc/calloc等函數(shù)分配內存時,需要檢查malloc/calloc的返回值是否為“空指針”,這是作為編程的習慣,下面就讓武林技術頻道小編帶大家來學習C語言new操作的安全性分析。

實現(xiàn)代碼如下:

int * p = new int [MAXSIZE]if (p == 0) // 檢查p指針是否為空return -1;//other code

其實,這里的 if ( p == 0 ) 完全沒有意義的。C++ 里,如果 new 分配內存失敗,默認是拋出異常的。所以,如果分配成功,p == 0 就絕對不會成立;而如果分配失敗了,也不會執(zhí)行 if ( p == 0 ),因為分配失敗時,new 就會拋出異常跳過后面的代碼。如果你想檢查 new 是否成功,應該捕捉異常:

try{int * p = new int [MAXSIZE]}catch( bad_alloc & exp){cerrr<<exp.what()<<endl;}

但是 有的程序員并不習慣捕捉異常,標準C++也提供了一種方法不拋出異常而返回空指針。

int * p = new (std::nothrow)int [MAXSIZE]if (p == 0) // 檢查p指針是否為空return -1;//other code

以上就是關于C語言new操作的安全性分析的全部介紹,你學會了嗎?建議你好好收藏這篇文章,相信對你做編寫程序很有幫助,更多的有用信息請關注武林技術頻道!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 漾濞| 新蔡县| 鹤岗市| 罗城| 三台县| 卢氏县| 西盟| 临汾市| 汶川县| 普安县| 新乐市| 微山县| 乳源| 彭水| 韶关市| 卓尼县| 大宁县| 轮台县| 四川省| 崇文区| 罗平县| 襄汾县| 喀喇沁旗| 垦利县| 洮南市| 精河县| 峨眉山市| 辛集市| 自贡市| 会昌县| 正镶白旗| 汉沽区| 隆子县| 夏河县| 兴海县| 郴州市| 丰台区| 司法| 敖汉旗| 九寨沟县| 枣强县|