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; 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; fill(A, A + sizeof(A) / sizeof(A), 33);
This diagnostic is classified as:
You can look at examples of errors detected by the V594 diagnostic.