Шрифт:
2. Используется “магическая константа” (в данном случае правильная):
3. Используется “магическая константа” (в данном случае неправильная):
4. Первый вызов
5. Передача нулевого указателя при втором вызове:
6. Вызов
В каждом из перечисленных вариантов ошибки были простыми. Мы не столкнулись с какими-либо скрытыми ошибками, связанными с алгоритмами и структурами данных. Проблема заключается в интерфейсе функции
Теоретически компилятор может выявить некоторые из этих ошибок (например, второй вызов
Как мы пришли к выводу, что вызов
Иначе говоря, она ищет элементы, начиная с ячеек
В терминах адресов ячеек памяти эти указатели находятся на расстоянии
Другими словами, функция
То, с чем мы столкнулись, является основанием для формулировки универсального правила, согласно которому из утверждения “класс