Указатели, возвращенные функциями Стандартной библиотеки 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