FIX: Using Referenced Integer to Access Array Generates CXX0034 (168430)



The information in this article applies to:

  • The Integrated Debugger, when used with:
    • Microsoft Visual C++, 32-bit Editions 4.0
    • Microsoft Visual C++, 32-bit Editions 4.1
    • Microsoft Visual C++, 32-bit Enterprise Edition 4.2
    • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
    • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
    • Microsoft Visual C++, 32-bit Professional Edition 4.2
    • Microsoft Visual C++, 32-bit Professional Edition 5.0
    • Microsoft Visual C++, 32-bit Professional Edition 6.0
    • Microsoft Visual C++, 32-bit Learning Edition 6.0

This article was previously published under Q168430

SYMPTOMS

The Visual C++ debugger generates the following error while using a referenced integer to access array.
Error: CXX0034: types incompatible with operator
The MORE INFORMATION section below contains a sample showing this behavior.

RESOLUTION

The workaround is not to use referenced integer a[i] to access array as shown in the sample. Use index value instead, as a[1].

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

This problem was corrected in Microsoft Visual C++ .NET.

MORE INFORMATION

Steps to Reproduce Behavior

Build the following sample with debug information:
   //test.cpp
   int func(int& i, int a[])
     {
      return 0;
     }

   int main(void)
     {
     int a[] = {1, 2, 3};
     int  i = 1;
     func(i, a);// SET A BREAKPOINT HERE
       return 0;
     }
				


Start the debugger with a breakpoint shown. If you now step into func() by hitting the F11 key and put a watch on "a[i]," you will get the error mentioned above. However, evaluating "i" and "a[1]" works just fine.

Modification Type:MajorLast Reviewed:12/2/2003
Keywords:kbBug kbDebug kberrmsg kbfix kbide kbNoUpdate KB168430