Строковые литералы не должны быть присвоены непостоянным указателям
Строковые литералы не должны быть присвоены непостоянным указателям.
Это правило предотвращает присвоения строковых литералов к указателям, которые указывают на не const
объекты. Такие присвоения позволяют более позднюю модификацию строкового литерала.
Попытка изменить строковый литерал может привести к неопределенному поведению. Например, некоторые реализации могут сохранить строковые литералы в постоянной памяти. Попытка изменить строковый литерал может привести к исключению или катастрофическому отказу.
Более поздние стандарты C++ требуют предупреждения компилятора для таких модификаций. Правило существует для ситуаций, когда вы подавляете предупреждения компилятора (и C++ AUTOSAR 14 правил, сопоставленных с теми предупреждениями).
Средство проверки правила отмечает присвоение строковых литералов к указателям кроме указателей на const
объекты.
Средство проверки не отмечает присвоение строковых литералов к non-const
массивы. Средство проверки для AUTOSAR C++ 14 Rule A18-1-1
запрещает прямое использование массивов C-стиля и предотвращает эти присвоения.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Выражения |
Категория: необходимый, автоматизированный |