Деление целого числа на ноль
Этот дефект возникает, когда знаменателем операции деления или операции по модулю может быть целое число с нулевым значением.
Деление на ноль может привести к сбою программы.
Исправление зависит от первопричины дефекта. Часто детали результата показывают последовательность событий, которые привели к дефекту. Этот список событий используется для определения того, как переменная знаменателя получает нулевое значение. Исправление может быть реализовано для любого события в последовательности. Если сведения о результатах не отображают историю событий, можно выполнить обратную трассировку, щелкнув правой кнопкой мыши параметры в исходном коде и просмотреть предыдущие связанные события. См. также раздел Интерпретация результатов поиска ошибок в интерфейсе пользователя Polyspace Desktop.
Рекомендуется проверять нулевые значения знаменателя перед делением и обрабатывать ошибку. Вместо непосредственного выполнения разделения:
res = num/den;
res = div(num, den);
См. примеры исправлений ниже.
Если вы не хотите устранять проблему, добавьте комментарии к результату или коду, чтобы избежать другой проверки. См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.
| Группа: Числовые |
| Язык: C | C++ |
| По умолчанию: Вкл. |
Синтаксис командной строки: INT_ZERO_DIV |
| Воздействие: Высокое |
| CWE ID: 189, 369 |