In this section:

Overview

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.


CodeDescriptionEnabledReportedPlatform
COPY_BAD_RANGE

Attempt to copy out-of-range pointer

(error)RuntimeWindows/Unix


Problem

The following code, the pointer a in line 7 is initialized as an array of 10 chars. 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;
}

Diagnosis at Runtime

[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

Repair

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.