0

いくつかのマシンでうまく動作するC++アプリケーションがあります。しかし、アプリケーションがエラーで失敗するPCが複数あることがわかりました。

このアプリケーションは、ランタイムに異常な方法でそれを終了するように要求しました。詳細については、アプリケーションのサポートチームにお問い合わせください。

興味深いのは、1台のコンピューターで、一部は機能し、一部は機能しないことです。数日前はエラーで失敗し、現在は機能しています。

この動作の理由は何でしょうか?

4

1 に答える 1

1

正しい態度は、一部のマシンで失敗するということではなく、「私のプログラムはどこでも間違っている- たまたま特定のマシンで動作する」ということです。

最も可能性が高いのは、初期化されていない変数であり、たまたま作業中のマシンでは空でゼロになったメモリを指しているが、他のマシンではジャンクを指している、または一部の割り当てが失敗し、作業中のマシンにたくさんのメモリがあるかどうかを確認していません。もう 1 つの一般的な問題は、一部のランタイム ライブラリのバージョンが異なることです。

提案:
コンパイラの警告レベルを上げる
デバッグ ビルドを試す - これらは通常、すべての変数を 0 に設定します
これは、スタック ダンプとリモート デバッグについて学ぶ絶好の機会です

于 2012-06-20T14:27:51.147 に答える