Выделенная память не совпадает с целевым указателем
Этот дефект происходит во время преобразования указателя, когда адрес указателя неправильно выравнивается. Если указатель преобразован в различный тип указателя, размер выделенной памяти должен быть кратным размеру целевого указателя.
Разыменование неправильно выровненного указателя имеет неопределенное поведение и может заставить вашу программу отказывать.
Предположим, что вы преобразуете указатель ptr1
к ptr2
. Если ptr1
точки к буферу N
байты и ptr2
указатель, где type
*sizeof (
type
)n
байты, убедитесь тот N
целочисленное кратное n
.
Смотрите примеры мер ниже.
Если вы не хотите устранять проблему, добавьте комментарии в свой результат или код, чтобы избежать другого анализа. Смотрите Результаты Polyspace Адреса Через Исправления ошибок или Выравнивания.
Группа: Статическая память |
Язык: C | C++ |
Значение по умолчанию: Off |
Синтаксис командной строки: OBJECT_SIZE_MISMATCH |
Удар: высоко |
ID CWE: 704 |