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

The analyzer has detected an odd pointer type conversion. Among such strange cases are situations when programmers try to cast a float-pointer to a double-pointer or vice versa. The point is that float and double types have different sizes and this type conversion most likely indicates an error.

Consider a simplest example:

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

Incompatibility between the sizes of the types being cast causes 'B' to point to a number format incorrect for the double type. Such pointer type conversion errors occur because of misprints or through inattention. For example, it may appear that a different data type or a different pointer should be used in such a code fragment.

This is the correct code:

    double *A;
    double* B = A;

This diagnostic is classified as:

CWE-704 CERT-FLP34-C

You can look at examples of errors detected by the V615 diagnostic.