私はこれとほぼ同等のコードをたくさん持っています:
bool test(double e, short a, short b, short c) {
// Things being calculated here...
cout << "debug_3" << endl;
return (1 - abs(cos_th)) < (1 - cos(e));
}
int main() {
// something...
cout << "debug_0" << endl;
if(test(e,1,2,0)) {
cout << "debug_4" << endl;
// Bunch of useful operations...
}
// something...
}
コードを実行すると、次の出力が生成されます。
debug_3
その後、プログラムがクラッシュします(Windowsで「プログラムが動作を停止しました...」と表示されます)。値の戻り時にクラッシュが発生したことはなく、原因や修正方法がわかりません。この問題について何か考えはありますか?
編集:いくつかの詳細:
私のビルドでは、cos_th
との値e
が有効であることも確認します。
test()
人々は問題の原因として2番目の何かを指摘しているようですが、 ...を呼び出してifステートメントを削除すると、私の問題は解決したように見えます(つまり、クラッシュは発生しません) 。