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