# V528. Pointer is compared with 'zero' value. Probably meant: *ptr != zero.

This error occurs in two similar cases.

1) The analyzer found a potential error: a pointer to bool type is compared to false value. It is highly probable that the pointer dereferencing operation is missing. For example:

    bool *pState;
    ...
    if (pState != false)
    ...

The '*' operator is missing in this code. As a result, we compare the pState pointer's value to the null pointer. This is the correct code:

    bool *pState;
    ...
    if (*pState != false)
    ...

2) The analyzer found a potential error: a pointer to the char/wchar_t type is compared to value '\0' or L'\0'. It is highly probable that the pointer dereferencing operation is missing. For example:

    char *cp;
    ...
    if (cp != '\0')

This is the correct code:

    char *cp;
    ...
    if (*cp != '\0')

This diagnostic is classified as:

CWE-697 CERT-INT36-C

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