Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在堆上分配最大内存_C++_Heap Memory - Fatal编程技术网

C++ 在堆上分配最大内存

C++ 在堆上分配最大内存,c++,heap-memory,C++,Heap Memory,我想知道一个程序如何使用new[]分配最大内存量,然后再抛出一条错误消息进行最终分配,就像 #include <iostream> using namespace std; int main() { try { do { int i = new int; throw sth; ....... }while(true); } catch(Exception){

我想知道一个程序如何使用new[]分配最大内存量,然后再抛出一条错误消息进行最终分配,就像

   #include <iostream>
   using namespace std;
   int main()
   {
   try
   {
      do
      {
      int i = new int;
      throw sth;
      .......
      }while(true);
   }
   catch(Exception){
    cerr<<"out of range"<<endl;
   }
    return 0;
   }
#包括
使用名称空间std;
int main()
{
尝试
{
做
{
int i=新的int;
扔某物;
.......
}虽然(正确);
}
捕获(例外){

cerr为什么不做这样的事情

size_t s = 0;
char* p = nullptr;
while(p = new (std::nothrow) char[++s]) delete[] p;
std::cout << "Max successful heap allocation: " << s - 1 << " bytes." << std::endl;
size\u t s=0;
char*p=nullptr;
而(p=new(std::nothrow)char[++s])删除[]p;

STD::CUT 1。你的代码不是有效的C++ 2。你为什么不试试它?3:提示:这是平台依赖的。你所发布的代码甚至不是有效的C++。你可以更努力地展示一个程序,至少编译和运行吗?我不知道该怎么做,我对编程世界有点陌生,听起来像是一个有趣的问题。谁是编程新手。你为什么要这么做?好奇?还是你正在试图解决一个实际问题?“实际问题”不包括为您解决家庭作业的人员。感谢您的帮助,当我试图编译这些行时,我的系统命令提示符为空白,没有显示anything@anu您是否将它们放在了
main
函数中,并包含了正确的标题(即
)?是的,包含了“conio.h”使用名称空间std;int main(){char*p=nullptr;而(p=new(std::nothrow)char[++s])delete[]当我从中减去1时,我是否认为它不起作用,所以我用-100来判断它是否对这个有效not@anu在大多数现代计算机上,编写的代码要花很长时间才能使分配失败。您可以通过对失败大小进行计算来显著加快速度。