Строковый литерал не должен быть присвоен объекту, если тип объекта не будет “указателем на квалифицированный к const char”
Примечание
Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.
Строковый литерал не должен быть присвоен объекту, если тип объекта не будет “указателем на квалифицированный к const char”.
Это правило предотвращает присвоения, которые позволяют модификацию строкового литерала.
Попытка изменить строковый литерал может привести к неопределенному поведению. Например, некоторые реализации могут сохранить строковые литералы в постоянной памяти. Попытка изменить строковый литерал может привести к исключению или катастрофическому отказу.
Средство проверки правила отмечает присвоение строковых литералов к:
Указатели с типом данных кроме const char*.
Массивы с типом данных кроме const char.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
| Группа: литералы и константы |
| Категория: необходимый |
| Категория AGC: необходимый |
MISRA C:2012 Rule 11.4 | MISRA C:2012 Rule 11.8 | Check MISRA C:2012 (-misra3)