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