Heim > Backend-Entwicklung > C++ > Hauptteil

Wie vermeide ich, dass ein Array außerhalb der Grenzen liegt?

WBOY
Freigeben: 2024-06-05 18:33:00
Original
1278 Leute haben es durchsucht

Um zu vermeiden, dass ein Array außerhalb der Grenzen liegt, können Sie eine Bereichs- oder Grenzenprüfung durchführen oder einen Sentinel-Wert verwenden, bevor Sie auf ein Element zugreifen. Bereichsprüfungen überprüfen, ob der Index innerhalb eines gültigen Bereichs liegt, Grenzprüfungen überprüfen einfach, ob der Index unterhalb der Array-Größe liegt, und Sentinels fügen ein zusätzliches „Sentinel“-Element zu den Grenzen des Arrays hinzu.

Wie vermeide ich, dass ein Array außerhalb der Grenzen liegt?

So vermeiden Sie Array-Out-of-Bounds

Array-Out-of-Bounds bezieht sich auf den Zugriff auf ein Element außerhalb des gültigen Bereichs des Arrays. Dies kann zu undefiniertem Verhalten führen, einschließlich Programmabstürzen oder falschen Ergebnissen. Hier sind einige Techniken, um zu vermeiden, dass Arrays außerhalb der Grenzen liegen:

1. Bereichsprüfung

Überprüfen Sie vor dem Zugriff auf ein Array-Element, ob der Index innerhalb des gültigen Bereichs liegt. Der folgende C++-Code prüft beispielsweise, ob der Index größer oder gleich 0 und kleiner als die Array-Größe ist:

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

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

2 Bounds check

prüft einfach, ob der Index kleiner als die Array-Größe ist. Beispiel:

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

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

3. Initialisieren Sie ein Array mit einem Index

der Grenzen, die ein Element größer sind als tatsächlich erforderlich, und geben Sie ihm einen „Sentinel“-Wert. Zum Beispiel:

array = [0] * (size + 1)
Nach dem Login kopieren

Platzieren Sie dann den Sentinel-Wert im letzten Element und überprüfen Sie seinen Index, bevor Sie auf das Element zugreifen:

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

Praktisches Beispiel:

Betrachten Sie die Notwendigkeit, ein Array zu lesen, das aus vom Benutzerprogramm eingegebenen Zahlen besteht von. Um die Grenze nicht zu überschreiten, können Sie den folgenden C#-Code verwenden:

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]}");
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie vermeide ich, dass ein Array außerhalb der Grenzen liegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage