我想抓住錯誤的分配錯誤。當輸入長度將按照10000000000000000000000或某物的順序時,則應該出現錯誤的分配錯誤。我不知道爲什麼它沒有被抓到。 任何幫助將不勝感激!沒有輸出,而嘗試趕上在c + +
# include <vector>
# include <iostream>
using namespace std;
void length(int m)
{
vector<int> x;
try
{
x.resize(m);
}
catch(std::bad_alloc&)
{
cout << "caught bad alloc exception" << std::endl;
}
}
int main()
{
int l;
cout << "Length" ;
cin >> l ;
length(l);
return 0;
}
更新:
當我硬編碼的輸入值,則拋出異常。我不知道爲什麼它以這種方式工作。
# include <vector>
# include <iostream>
using namespace std;
void length(int m)
{
vector<int> x;
try
{
x.resize(m);
}
catch(std::bad_alloc&)
{
cout << "caught bad alloc exception" << std::endl;
}
}
int main()
{
int m= 100000000000000000000;
length(m);
return 0;
}
我看到捕獲的異常[點擊這裏運行(HTTP:// CPP。sh/9fwg)與一個大的輸入(例如10000000000) – CoryKramer
它可以是一個編譯器問題?因爲我沒有得到這個例外。 – jennifer
你如何輸入'2^500'? – m0nhawk