# V594. Pointer to array is out of array bounds.

The analyzer has detected a potential error of pointer handling. There is an expression in the program, on calculating which a pointer leaves array bounds.

Here is a simple example to clarify this point:

    int A[10];
    fill(A, A + sizeof(A), 33);

We want all the array items to be assigned value 33. The error is this: the "A + sizeof(A)" pointer points far outside the array's bounds. As a result, we will change more memory cells than intended. A result of such an error is unpredictable.

This is the correct code:

    int A[10];
    fill(A, A + sizeof(A) / sizeof(A[0]), 33);

This diagnostic is classified as:

CWE-823 CERT-ARR30-C

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