IT-Academy Logo
Sign Up Login Help
Home - Glossar - F - Fence Post Error


Fence Post Error

Autor: Patrick Faes (dreamer)
Datum: 18-09-2007, 22:30:36
Referenzen: Teach yourself C++ in 10 minutes, Jesse Liberty, Sams Publishing
Ansichten: 4426x

[Druckansicht] [Als E-Mail senden]

Ein so genannter Fence Post Error verweist auf ein Problem bei der Verwendung von Arrays: ein Array-Element außerhalb der Array-Grenze einen Wert verleihen.

Es handelt sich dabei um einen oft begangen Fehler. Arrays sind Variablen die mehrere Werte gleichzeitig speichern können, z.B. alle Wochentage. Um diese zu speichern, braucht man ein Array mit 7 Elemente.

array = new Array(7);

Um dann ein Wert einzustellen, muss das Element des Arrays mit einer Indexzahl angegeben werden.

array[3] = "Donnerstag";

Wenn Sie jetzt dachten, das dritte Element des Arrays bekommt den Wert "Donnerstag", liegen Sie falsch.
In (den meisten) Programmiersprachen fangen bei null an zu zählen. Die Indexzahlen wären in diesem Fall 0 bis 6, nicht 1 bis 7.

Ein oft vorkommender Fehler ist dass ein Programmierer versucht das siebte Array-Element den Wert "Sontag" zu vergeben, jedocht 7 als Indexzahl nimmt.

array[7] = "Sontag";

Jetzt wird allerdings versucht auf ein Element außerhalb der Array-Grenze (also ein nicht-existentes) Element zuzugreifen.

Der Begriff "Fence Post Error" entstand aus dem Vergleich mit dem Bau eines Zauns.

Nehmen wir mal an, Sie möchten einen 10 Meter langen Zaun bauen und um jeden Meter einen Posten einsetzen. Wieviel Zaunposten brauchen Sie dann?

Vielleicht haben Sie jetzt spontan auf 10 getippt, damit liegen Sie dann aber falsch. Sie brauchen 11 Stück davon.

Der Grund dafür:
Jeder Meter Zaun soll von einem Posten getrennt werden vom nächsten Meter Zaun. Bei 10 Meter Zaun gibt es also neun Posten dazwischen und an den beiden Ausenden soll noch jeweils ein Posten stehen. Macht also insgesamt 11 Stück.




Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04511
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06248
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0