V594. The pointer steps out of array's 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:

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


Bugs Found

Checked Projects
417
Collected Errors
14 279
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site. Learn More →
Accept