Указатели, возвращенные функциями Стандартной библиотеки localeconv
, getenv
, setlocale
или strerror
должны использоваться только так, как если бы у них был указатель на const
-квалифицированный тип
Указатели, возвращенные функциями Стандартной библиотеки localeconv
, getenv
, setlocale
или strerror
должны использоваться только так, как если бы у них был указатель на const
-квалифицированный тип.
Это правило получено от MISRA C®: 2012 1 о внесении изменений.
Стандарт C99 утверждает, что, если программа изменяет структуру, на которую указывает значение, возвращаемое localeconv
, или строки, возвращенные getenv
, setlocale
или strerro
, происходит неопределенное поведение. Обработка указателей, возвращенных различными функциями, как если бы они const
-qualified позволяет инструменту анализа обнаруживать любую попытку изменить объект с помощью одного из указателей. Присвоение возвращаемых значений функций const
-квалифицированные указатели приводят к тому, что компилятор выдает диагностику, если предпринята попытка изменить объект.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Стандартные библиотеки |
Категория: Обязательная |
Категория AGC: Обязательно |
Check MISRA C:2012 (-misra3)
| MISRA C:2012 Rule 11.8
| MISRA C:2012 Rule 21.8
| MISRA C:2012 Rule 7.4