Арифметическая операция выполняется на NULL
указатель
Этот дефект происходит, когда арифметическая операция включает указатель, значением которого является NULL
.
Выполнение адресной арифметики с указателями на нулевом указателе и разыменование получившегося указателя являются неопределенным поведением. В большинстве реализаций разыменовывание может заставить вашу программу отказывать.
Проверяйте указатель на NULL
перед арифметическими операциями на указателе.
Если проблема происходит несмотря на более раннюю проверку на NULL
, ищите промежуточные события между проверкой, и последующие разыменовывают. Часто детали результата (или подсказки исходного кода в Polyspace, когда Вы Кодируете) показывают последовательность событий, которые привели к дефекту. Можно реализовать закрепление на любом событии в последовательности. Если детали результата не показывают эту историю события, можно искать предыдущие ссылки переменных, относящихся к дефектному использованию, щелкают правой кнопкой по опциям по исходному коду и находят связанные события. См. также Интерпретируют Результаты Bug Finder в Пользовательском интерфейсе Рабочего стола Polyspace или Интерпретируют Результаты Bug Finder в Polyspace доступ к веб-интерфейсу.
Смотрите примеры мер ниже.
Группа: Статическая память |
Язык: C | C++ |
Значение по умолчанию: Off |
Синтаксис командной строки: NULL_PTR_ARITH |
Удар: низко |
Find defects (-checkers)
| Null pointer