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