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