C ランタイム エラーを解決する方法:「範囲外の例外」
C でプログラミングする場合、ランタイム エラーが頻繁に発生します。一般的なエラーの 1 つは、配列の範囲外エラーである「範囲外例外」です。このエラーは、有効なインデックス範囲を超えて配列にアクセスしようとするとスローされます。このようなエラーにより、プログラムがクラッシュしたり、予期しない結果が生じたりする可能性があります。以下では、この問題を解決する方法を説明し、いくつかのコード例を示します。
配列範囲外エラーを回避するための基本原則
配列範囲外エラーは、通常、有効範囲を超えて配列要素にアクセスしようとしたときに発生します。このエラーを回避するには、次の原則に従う必要があります。
#include <iostream> using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; int index; cout << "请输入要访问的数组索引:"; cin >> index; if (index >= 0 && index < 5) { cout << "数组元素值为:" << arr[index] << endl; } else { cout << "索引超出有效范围!" << endl; } return 0; }
上記の例では、まずアクセスする配列のインデックスを入力し、次に条件チェックを実行します。インデックスが有効な範囲内にある場合は、対応する配列要素の値が出力され、それ以外の場合は、インデックスが有効な範囲外であることを示すメッセージが表示されます。
#include <iostream> using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; int index; cout << "请输入要访问的数组索引:"; cin >> index; try { if (index < 0 || index >= 5) { throw "索引超出有效范围!"; } cout << "数组元素值为:" << arr[index] << endl; } catch (const char* errMsg) { cout << errMsg << endl; } return 0; }
上の例では、try-catch ステートメント ブロックを使用して例外をキャッチしました。インデックスが有効な範囲を超えると、カスタム例外がスローされ、catch ステートメント ブロックで例外が処理されます。これにより、範囲外エラーが発生してもプログラムはクラッシュせずに正常終了することができます。
要約:
C プログラムを作成するときは、配列範囲外エラーの問題に常に注意を払う必要があります。条件チェックを実行し、例外処理メカニズムを使用することで、範囲外エラーを効果的に回避し、解決できます。同時に、適切なプログラミングの習慣と仕様は、そのようなエラーの可能性を減らすのにも役立ちます。
以上がC++ ランタイム エラー:「範囲外の例外」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。