C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++的std::nothrow

C++中的std::nothrow使用

作者: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;
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文