int iŚrodek; long IM;
if(m_clMtabl == 0) return 0;
while(iLewy < iPrawy)
iŚrodek = (iLewy + iPrawy)/2;
Łatwo zapomnieć o zainicjalizowaniu zmiennych lokalnych. Czynność ta wydaje 1 się po prostu mało ważna. Ponadto w wielu wypadkach dobrze wiemy, że wartości tak | czy inaczej zostaną obliczone. Na przykład we fragmencie „Przed” wartość zmiennej j iŚrodek jest zawsze obliczana przed użyciem, ale zmienne iLewy oraz iPrawy —już j nie. Zatem niezainicjalizowanie ich wartości może wywołać różne dziwne efekty, i W tym wypadku może nastąpić nieoczekiwane przerwanie pętli.
Należy przyzwyczaić się do inicjalizowania wszystkich zmiennych lokalnych przed ich użyciem. (Kompilator często ostrzega o braku wartości początkowych. Na przykład kompilator Microsoft Visual C++ na ogół wykrywa użycie niezainicjalizowanych ; wskaźników.)
Przykład: plik bsrch.cpp
unikanie awarii; unikanie nieoczekiwanych wyników
BOOL FL::Weź(int ibit)
BOOL FL::Weź(int ibit)
if(ibit >= m_cbit || ibit < 0) return(FALSE);
Użytkownicy nie czytają dokumentacji. Nie można więc oczekiwać, że wartości przekazywane przez nich do funkcji, a w szczególności do funkcji publicznych, będą się mieściły w odpowiednim zakresie.
Należy sprawdzać wartości argumentów i dane wprowadzane przez użytkownika jeszcze przed ich przetworzeniem. Jeśli jakaś wartość wykracza poza dopuszczalny