2012-05-10 3 views
10

Ich debugge meinen C++ - Code in Visual Studio 2010 und möchte den Inhalt meines Arrays sehen, sagen wir Q, was 17x17 ist. Wenn ich einen Haltepunkt einfüge und versuche zu debuggen, sehe ich nur die Variable "Q". Wenn ich es zum "Watch" -Bildschirm bringe und es in "Q, 17" umbenenne, sehe ich eine Ebene tiefer.Wie alle Elemente eines zweidimensionalen Arrays in Visual Studio 2010 angezeigt werden?

Aber ich möchte auch die andere Dimension sehen. Ich kann nicht "Q, 17,17" schreiben. Was ist der richtige Befehl?

Danke ...

Antwort

13

Sie können nicht, zumindest nicht direkt.

Sie können &array[0][0] in das Speicherfenster eingeben und dann die Größe so ändern, dass die Anzahl der Spalten mit einer Zeile von array Daten übereinstimmt.

Alternativ Sie array[0],17 im Überwachungsfenster setzen, und dann wiederholen Sie für array[1],17 usw.

nicht die Antwort, die Sie vielleicht gesucht haben, aber das Watch-Fenster, während ziemlich mächtig, kann es einfach nicht Tun Sie, was Sie wollen.

+0

Vielen Dank, das ist ziemlich genug für mich. –

0

Die vorgeschlagene Lösung funktioniert nur mit 1D-Arrays. Aber ein 2D-Array, die Größe in jeder Zeile festgelegt hat (die erste Dimension als eine Zeile zu sehen, wie in der Mathematik) als 1D-Array wie folgt zugeordnet werden:

int ** a = new int * [n]; 
int * b = new int [n*n]; 

a[0] = &b[0]; 
for (int i=1; i<n; i++) 
{ 
    a[i] = a[i-1]+n; 
} 
int count=0; 
for (int i=0; i<n; i++) 
{ 
    for (int j=0; j<n; j++) 
    { 
     a[i][j]= rgen.randInt(-10,10); 
    } 
} 

Sie können dann als Matrix verwenden a in Ihrem Code und visualisieren mit say b,100, wenn Ihre Matrix 10 von 10 ist.

Verwandte Themen