国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 蒲江县| 宁河县| 孟村| 沙洋县| 达州市| 嫩江县| 库伦旗| 浏阳市| 大英县| 汾西县| 汝州市| 勐海县| 北海市| 上思县| 顺平县| 永平县| 安阳市| 白银市| 牡丹江市| 申扎县| 鹿泉市| 崇明县| 桐庐县| 普兰店市| 平安县| 东宁县| 莎车县| 西乌珠穆沁旗| 河曲县| 泰顺县| 扎鲁特旗| 兴安盟| 平谷区| 马公市| 淅川县| 土默特右旗| 华坪县| 保亭| 永年县| 衡水市| 玛多县|