Maison  >  Article  >  développement back-end  >  Comment éviter les tableaux hors limites ?

Comment éviter les tableaux hors limites ?

WBOY
WBOYoriginal
2024-06-05 18:33:001125parcourir

Pour éviter que le tableau ne dépasse les limites, vous pouvez effectuer une vérification de plage ou de limites ou utiliser une valeur sentinelle avant d'accéder à un élément. Les contrôles de plage vérifient que l'index se trouve dans une plage valide, les contrôles de limites vérifient simplement que l'index est inférieur à la taille du tableau et les sentinelles ajoutent un élément « sentinelle » supplémentaire aux limites du tableau.

Comment éviter les tableaux hors limites ?

Comment éviter les limites d'un tableau

Les limites d'un tableau font référence à l'accès à un élément au-delà de la plage valide du tableau. Cela peut conduire à un comportement indéfini, notamment des plantages du programme ou des résultats incorrects. Voici quelques techniques pour éviter que le tableau ne dépasse les limites :

1. Range Check

Avant d'accéder à un élément du tableau, vérifiez si l'index se trouve dans la plage valide. Par exemple, le code C++ suivant vérifie si l'index est supérieur ou égal à 0 et inférieur à la taille du tableau :

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

if (index >= 0 && index < sizeof(array) / sizeof(array[0])) {
  // 安全地访问元素
} else {
  // 处理越界情况
}

2 Vérification des limites

vérifie simplement si l'index est inférieur à la taille du tableau. Par exemple :

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

if (index < array.length) {
  // 安全地访问元素
} else {
  // 处理越界情况
}

3. Initialisez un tableau avec un index

des limites d'un élément plus grand que celui réellement requis, en lui donnant une valeur "sentinelle". Par exemple :

array = [0] * (size + 1)

Ensuite, placez la valeur sentinelle dans le dernier élément et vérifiez son index avant d'accéder à l'élément :

if index < size:
  # 安全地访问元素
else:
  # 处理越界情况

Exemple pratique :

Considérons un besoin de lire un tableau composé de nombres saisis par le programme utilisateur de. Pour éviter de franchir la ligne, vous pouvez utiliser le code C# suivant :

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]}");
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn