Неправильно выровненные или недопустимые результаты преобразований между типами указателей и целочисленными типами
Этот дефект происходит, когда вы преобразуете между типом указателя, таким как intptr_t, или uintprt_t, и целочисленный тип, такой как enum, ptrdiff_t, или pid_t, или наоборот.
Отображение между указателями и целыми числами не всегда сопоставимо со структурой обращения среды.
Преобразование от указателей до целых чисел может создать:
Усеченный или из целочисленных значений области значений.
Недопустимые целочисленные типы.
Преобразование от целых чисел до указателей может создать:
Неправильно выровненные указатели или неправильно выровненные объекты.
Адреса недопустимого указателя.
Где возможно, избегайте преобразования целого числа к указателю или указатель на целое число. Если вы хотите преобразовать void указатель на целое число, так, чтобы вы не изменяли значение, использует типы:
C99 — intptr_t или uintptr_t
C90 — size_t или ssize_t
| Группа: Программирование |
| Язык: C | C++ |
| Значение по умолчанию: Off |
Синтаксис командной строки: BAD_INT_PTR_CAST |
| Удар: Средняя |
| ID CWE: 465, 466, 587, 758 |