Błąd pomyłki o jeden
Błąd pomyłki o jeden (ang. off-by-one error) – błąd programistyczny polegający na pomyłce o jeden, na przykład zaczynanie od 1, kiedy powinno się od 0 (lub odwrotnie)[1]. Terminem tym określa się również mylenie „mniejsze” z „mniejsze-równe” w warunkach pętli.
Przykład typowego błędu off by one (pętla wykona się 101 razy, nie 100):
int foo[100];
int i;
for (i=0; i<=100; ++i)
foo[i] = 0;
Uwaga: W przypadku, gdy kompilator ułoży adresy zmiennych na stosie tak, że:
&i == &foo[100];
– program się zapętli. Błąd ten może być wykorzystany na przykład do zmiany rejestru ESP.
Przypisy
- ↑ Andrzej Grażyński, Glenford J. Myers (red.), Sztuka testowania oprogramowania: nowoczesne techniki i zasady testowania aplikacji, Gliwice: Wydawnictwo Helion, 2005, ISBN 978-83-7361-894-7 [dostęp 2025-05-21].