1
私はクラスをテストする必要がある宿題をしています。私たちはstlを使用することは禁じられていました:)問題は、test_2でプログラムがクラッシュすることです。メインのtryステートメントに至るまで、すべて動作します。それが例外にジャンプする必要があるとき、それはちょうどクラッシュします。何が起こっているのでしょうか?前もって感謝します! :)try-catchステートメントでC++がクラッシュする
void test_2() //
{
int tomb[400];
for(unsigned int j=0;j<400;j++){
tomb[j]=j;
}
cout <<"array loaded \n";
Buffer<int> test2(40,"test2.txt","w");
Buffer<int> test21(40,"test21.txt","w"); // 40 meretu buffer
cout << "bufferek letrehozva \n";
for(unsigned int j=0;j<400;j++){
test2[j]=tomb[j];
}
cout << "buff loaded \n";
/* for(unsigned int j=0;j<400;j++){
cout << test2[j] << endl;
} */
test21=test2;
cout << "copy constr ran \n";
unsigned int i=0;
for(unsigned int j=0;j<400;j++){
if(i==39){for(i=0;i<40;i++){ //40 size buff
test21.printfile(test21[i]);}
i=0;}
else i++;
}
throw "gets here";
}
int main()
{
try
{
int number;
cin >> number; // nr of the test
switch (number)
{
case 1:
test_1(); // file_test
break;
case 2:
test_2(); // copyconst_test
break; // crashes here
case 3:
test_3();
break;
}
}
catch (exception& e)
{
cerr << e.what() << endl;
}
catch (int i)
{
cerr << i << endl;
}
catch (const char* s)
{
cerr << s << endl;
}
catch (...)
{
cerr << "*** Nagy baj van! ****" << endl;
}
return 0;
}
はい:/最大値に達するたびにサイズが倍になります。 –
これはたくさんのことがあります。あなたのバッファがデストラクタで別の例外を投げている可能性がありますか?あなたが 'スロー 'がここに来るとコメントした場合、'; '行はどうなりますか? – axalis
また、const参照、つまり 'catch(const exception&e)'によってstd :: exceptionをキャッチします。 – axalis