web-dev-qa-db-ja.com

Eclipse-C ++-デバッグ:配列の内容を参照してください

次のように、動的に割り当てられた配列のコンテンツを表示することは可能ですか?

int *array = new int[dimension];

ポインタの値しか表示されません。

編集:「配列として表示」オプションが見つかりましたが、常に配列のサイズを手動で入力する必要があります。それを自動的に取得することは可能ですか?

24
brandstaetter

eclipseで、動的に割り当てられた配列の内容を確認するには(この質問に遭遇した他の人のために)、

  1. デバッグの観点にいることを確認してください。 「変数」ウィンドウを探します。表示されない場合は、「ウィンドウ」>「ビューの表示」>「変数」をクリックしてください。
  2. 配列変数を右クリックします
  3. [配列として表示]をクリックします
  4. Eclipseは配列の大きさを認識していないため、開始インデックスに0を入力し、長さに動的に割り当てた要素の数を入力します。

choose display as array in Eclipse

41

「配列として表示」を繰り返し実行する必要がない場合は、「式」タブを開き、式(*array@dimension)を追加します。括弧が必要な理由がわかりません。それらがないと、エラーが発生します。

11
cleong

[式]タブで、cleongが指摘したことを実行し、(*array@dimension)と入力すると、表示する配列のサイズも動的に設定できます。これは、取得するために別の式が必要な場合でも機能します。

したがって、配列サイズを含む変数xがあるとすると、(*array@x)と入力すると、xの内容が次元として使用されます。

「x」は、構造体の内容やポインタの逆参照などのようなものでもかまいません。

(*array@SomePtrToStruct->x) 

正常に動作します。

7
Will Rouesnel

「配列として表示」オプションが見つかりましたが、常に手動で配列のサイズを入力する必要があります。それを自動的に取得することは可能ですか?

それは良い。私はそれに固執します。配列を自動的に取得することは、CまたはC++の一般的なケースでは不可能ですが、確かにいくつかの些細なケースでは可能です(ただし、レイモンドチェンを言い換えると、機能が存在する前に実装する必要があります)。

3
John Zwinck