Это одна из причин, по которой atoi
иногда считается небезопасной. Вместо этого используйте strtol
/ strtoul
. И если вы используете strtonum
.
Функция atoi
более опасна, чем вы думаете. Стандарт POSIX
говорит:
Если значение не может быть представлено, поведение не определено.
blockquote>Стандарт C99 это также говорит:
7.20.1
Функции atof, atoi, atol и atoll не должны влиять на значение целочисленного выражения errno при ошибке. Если значение результата не может быть представлено, поведение не определено.
blockquote>