开发者

C++中的std::nothrow使用

开发者 https://www.devze.com 2023-11-20 13:45 出处:网络 作者: distant1219
目录C++的std::nothrow使用C++error C2039: “coujst“: 不是“std“的成员总结C++的std::nothrow使用
目录
  • C++的std::nothrow使用
  • C++error C2039: “coujst“: 不是“std“的成员
  • 总结

C++的std::nothrow使用

在 C 语言中,使用 malloc 申请内存时,需要判断一下是否申请成功。如果返回指针为 NULL , 则不成功。所以只需要判断返回指PtYVJyHt针是否为空即可。

而在 C++ 中,通过 new 申请一段内存空间时,如果不成功,其返回的是一个异常 std::bad_alloc ,需要用 try catch 去捕获这个异常来判断成功与否。

而C中的判断方式是很方便的,为了使用和C中一样的方式,于是提出了 std::nothrow 的方式。字面意思就是不要抛出异常,即如果申请失败,返回空指针即可。

使用方式如下:

int* val = new (std::nothrow) int[10];
Student* stu = new (std::nothrojavascriptw) Student('Jack');

C++error C2039: &ldqpythonuo;cout“: 不是“std“的成员

case1:

包含文件次序错了。改为`

#include "stdafx.h"
#include "IOStream"
.....

case2:

没有添加命名空间std所在的头文件iostream

正确写法:

#include "stdafx.h"
#include <iostream>
int main()
{
  std::cout << "helljavascripto 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;
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号