# V615. Suspicious explicit conversion from 'float *' type to 'double *' type.

Анализатор обнаружил подозрительное приведение типов указателей. Подобными подозрительными ситуациями является, когда указатель на float пытаются привести к указателю на double или наоборот. Дело в том, что типы float и double имеют различный размер и подобное приведение типов, скорее всего, свидетельствует об ошибке.

Рассмотрим простейший пример:

    float *A;
    double* B = (double*)(A);

Несоответствие размеров приводимых типов приведет к тому, что 'B' будет указывать на некорректный для типа double формат числа. Такие ошибки приведения типов указателей возникают из-за опечаток или невнимательности. Например, может оказаться, что в этом месте следует использовать другой тип данных или другой указатель.

Корректный вариант кода:

    double *A;
    double* B = A;

Данная диагностика классифицируется как:

CWE-704 CERT-FLP34-C

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V615.