Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08

menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V2532. MISRA. String literal should not be assigned to object unless it has type of pointer to const-qualified char.

20 Мар 2019

Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.

Анализатор обнаружил неявное снятие константности с строкового литерала. Так как любая попытка изменить строковый литерал приводит к неопределенному поведению, его следует присваивать лишь к объектам типа указателя на константный символ (pointer to const-qualified char).

Это правило также актуально для широкого строкового литерала.

Пример кода, на который анализатор выдаст предупреждение:

char* Foo(void)            
{
  return "Hello, world!";
}

При модификации строкового литерала анализатор также выдает предупреждение:

"first"[1] = 'c';

Диагностическое правило классифицируется как:

  • MISRA-C-2012-Rule-7.4
  • MISRA-C-2023-Rule-7.4

Ты поймал бага за сек!
А мы в коде ловим их за доли секунды. Хочешь проверить?

Попробовать бесплатно