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++输入一个字符串,把其中的字符按照逆序输出的两种方法解析
以下是对C++中输入一个字符串,把其中的字符按照逆序输出的两种方法进行了详细的分析介绍,需要的朋友可以过来参考下2013-07-07
最新评论