In this section:
This error is generated whenever an attempt is made to copy a pointer which points outside a valid range. It is not necessarily a serious problem, but may indicate faulty logic in the coding. Therefore, this error is suppressed by default.
|
The following code, the pointer a
in line 7 is initialized as an array of 10 char
s. The next line then attempts to make pointer b
point to an area that has not been allocated. The resulting pointer is not valid.
/* * File: copybad.cpp */ int main() { char *a, *b; a = new char [10]; b = a + 20; return 0; } |
[copybad.cpp:8] **COPY_BAD_RANGE** >> b = a + 20; Copying pointer which is out-of-range: a + 20 Pointer : 0x0007c124 Actual block : 0x0007c110 thru 0x0007c119 (10 bytes) a, allocated at: main() copybad.cpp, 7 Stack trace where the error occurred: main() copybad.cpp, 8 |
The simple way to avoid this problem is to not copy the invalid pointer. There may be an incorrect boundary case in your code causing the problem.