C++中的std::nothrow使用
更新時間:2023年08月08日 11:07:40 作者:distant1219
這篇文章主要介紹了C++中的std::nothrow使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
C++的std::nothrow使用
在 C 語言中,使用 malloc
申請內存時,需要判斷一下是否申請成功。如果返回指針為 NULL
, 則不成功。所以只需要判斷返回指針是否為空即可。
而在 C++ 中,通過 new
申請一段內存空間時,如果不成功,其返回的是一個異常 std::bad_alloc
,需要用 try catch
去捕獲這個異常來判斷成功與否。
而C中的判斷方式是很方便的,為了使用和C中一樣的方式,于是提出了 std::nothrow
的方式。字面意思就是不要拋出異常,即如果申請失敗,返回空指針即可。
使用方式如下:
int* val = new (std::nothrow) int[10]; Student* stu = new (std::nothrow) Student('Jack');
C++error C2039: “cout“: 不是“std“的成員
case1:
包含文件次序錯了。改為`
#include "stdafx.h" #include "iostream" .....
case2:
沒有添加命名空間std所在的頭文件iostream
正確寫法:
#include "stdafx.h" #include <iostream> int main() { ? ? std::cout << "hello world!I'm C++." << std::endl; ? ? system("pause"); ? ? return 0; }
或
#include "stdafx.h" #include <iostream> using namespace std; int main() { ? ? cout << "hello world!I'm C++." << endl; ? ? system("pause"); ? ? return 0; }
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
C語言中isdigit()函數和isxdigit()函數的用法
這篇文章主要介紹了C語言中isdigit()函數和isxdigit()函數的用法,用來判斷字符師傅為阿拉伯數字和16進制數字,需要的朋友可以參考下2015-08-08