配列の範囲外を回避するにはどうすればよいですか?

WBOY
リリース: 2024-06-05 18:33:00
オリジナル
1226 人が閲覧しました

配列の範囲外を回避するには、要素にアクセスする前に範囲または境界のチェックを実行するか、センチネル値を使用します。範囲チェックではインデックスが有効な範囲内にあることを確認し、境界チェックでは単にインデックスが配列サイズを下回っていることを確認し、センチネルは配列の境界に追加の「センチネル」要素を追加します。

配列の範囲外を回避するにはどうすればよいですか?

配列の範囲外を回避する方法

配列の範囲外とは、配列の有効範囲を超えて要素にアクセスすることを指します。これにより、プログラムのクラッシュや不正な結果などの未定義の動作が発生する可能性があります。配列の範囲外を回避するためのテクニックをいくつか紹介します:

1. 範囲チェック

配列要素にアクセスする前に、インデックスが有効な範囲内にあるかどうかを確認します。たとえば、次の C++ コードは、インデックスが 0 以上で配列サイズ未満であるかどうかをチェックします。

int array[] = {1, 2, 3};
int index = 2;

if (index >= 0 && index < sizeof(array) / sizeof(array[0])) {
  // 安全地访问元素
} else {
  // 处理越界情况
}
ログイン後にコピー

2. 境界チェック

は、単にインデックスが配列サイズより小さいかどうかをチェックします。例:

int[] array = {1, 2, 3};
int index = 2;

if (index < array.length) {
  // 安全地访问元素
} else {
  // 处理越界情况
}
ログイン後にコピー

3. 実際に必要な要素よりも 1 要素大きい境界のインデックス

を使用して配列を初期化し、「センチネル」値を与えます。例:

array = [0] * (size + 1)
ログイン後にコピー

次に、最後の要素にセンチネル値を配置し、要素にアクセスする前にそのインデックスを確認します:

if index < size:
  # 安全地访问元素
else:
  # 处理越界情况
ログイン後にコピー

実用的な例:

ユーザー プログラムによって入力された数値で構成される配列を読み取る必要性を考慮します。の。一線を越えないようにするために、次の C# コードを使用できます:

Console.WriteLine("Enter the size of the array:");
int size = int.Parse(Console.ReadLine());

int[] array = new int[size];

for (int i = 0; i < array.Length; i++)
{
    Console.WriteLine($"Enter the value for index {i}:");
    array[i] = int.Parse(Console.ReadLine());
}

Console.WriteLine("The values in the array:");
for (int i = 0; i < array.Length; i++)
{
    Console.WriteLine($"{i}: {array[i]}");
}
ログイン後にコピー

以上が配列の範囲外を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!