Строка не завершает работу с нулевым символом
Этот дефект происходит, когда строка не имеет достаточного количества пробела, чтобы отключить с нулевым символом '\0'
.
Этот дефект применяется только для проектов в C.
Переполнение буфера может произойти, если вы копируете строку в массив, не принимая неявный пустой терминатор строки.
Если вы инициализируете символьный массив литералом, стараетесь не задавать границы массивов.
char three[] = "THREE";
Если проблема происходит после инициализации вам придется увеличить размер массива одним с учетом пустого терминатора строки.
При определенных обстоятельствах вы можете хотеть инициализировать символьный массив последовательностью символов вместо строки. В этой ситуации добавьте комментарии в свой результат или код, чтобы избежать другого анализа. Смотрите Результаты Polyspace Адреса Через Исправления ошибок или Выравнивания.
Группа: Программирование |
Язык: C |
Значение по умолчанию: На для рукописного кода, прочь для сгенерированного кода |
Синтаксис командной строки: MISSING_NULL_CHAR |
Удар: низко |
ID CWE: 170 |