Maison > développement back-end > C++ > le corps du texte

Comment éviter les tableaux hors limites ?

WBOY
Libérer: 2024-06-05 18:33:00
original
1266 Les gens l'ont consulté

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 {
  // 处理越界情况
}
Copier après la connexion

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 {
  // 处理越界情况
}
Copier après la connexion

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)
Copier après la connexion

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:
  # 处理越界情况
Copier après la connexion

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]}");
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal