Несогласованные или недопустимые результаты преобразований между указателем мыши и целых типов
Этот дефект возникает при преобразовании между типами указателей, такими как 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 |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE: 465, 466, 587, 758 |