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