2009-12-01 7 views
21

Ist es möglich, den Inhalt eines dynamisch zugewiesenen Arrays zu sehen, wie in:Eclipse C++ - Debugging: siehe Inhalt eines Array

int *array = new int[dimension]; 

ich nur den Wert des Zeigers sehen.

edit: habe gerade die Option "display as a array" gefunden, aber ich muss immer die Größe des Arrays manuell eingeben. Ist es möglich, das automatisch zu bekommen?

Antwort

35

in Eclipse, den Inhalt einer dynamisch zugewiesenen Arrays zu sehen (für alle anderen, die sich über diese Frage stolpert),

  1. sicherstellen, dass Sie in der Debug-Perspektive sind. Suchen Sie nach dem Fenster "Variablen". Wenn Sie es nicht sehen, klicken Sie auf "window"> "show view"> "variables".
  2. rechts auf dem Variablenfeld klicken
  3. klicken Anzeige als Array
  4. Eclipse nicht weiß, wie groß Ihr Array ist, so geben Sie 0 für den Startindex und die Anzahl der Elemente, die Sie dynamisch für die Länge zugeordnet.

choose display as array in eclipse

3

Ich habe gerade die Option "Anzeige als Array" gefunden, aber ich muss immer die Größe des Arrays manuell eingeben. Ist es möglich, das automatisch zu bekommen?

Das ist gut. Ich bleibe dabei. Das automatische Holen des Arrays ist im allgemeinen Fall in C oder C++ nicht möglich, obwohl es sicherlich in einigen trivialen Fällen gemacht werden könnte (aber wahrscheinlich ist es noch nicht - Funktionen müssen implementiert werden, bevor sie existieren, um Raymond Chen zu paraphrasieren).

8

Wenn Sie wiederholt, um zu vermeiden möchten tun „Anzeigen als Array“, öffnen Sie die „Ausdrücke“ Registerkarte und fügen Sie den Ausdruck (*[email protected]). Nicht sicher, warum die Klammern notwendig sind. Ohne sie würden Sie einen Fehler erhalten.

5

In der Registerkarte "Ausdrücke", wenn Sie tun, was cleong notiert ist und (*[email protected]) eingeben, dann können Sie dynamisch die Größe des Arrays auch angezeigt werden. Dies funktioniert sogar, wenn Sie einen anderen Ausdruck benötigen, um es zu bekommen.

Also sagen Sie, Sie haben eine Variable x, die Ihre Array-Größe enthält, geben Sie (*[email protected]) und es wird den Inhalt von x als Dimension verwenden.

„x“ kann auch Dinge wie struct Inhalt oder Zeiger dereferenziert und dergleichen - das heißt

(*[email protected]>x) 

funktioniert gut.