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:
|
You can look at examples of errors detected by the V594 diagnostic. |