18

Visual Studio2010でc++コードをデバッグしていて、配列のコンテンツ、たとえばQ(17x17)を確認したいと思います。ブレークポイントを挿入してデバッグしようとすると、変数「Q」のみが表示されます。「ウォッチ」画面に移動して「Q、17」に名前を変更すると、1つ下のレベルが表示されます。

しかし、私は他の次元も見たいです。「Q、17,17」は書けません。適切なコマンドは何ですか?

ありがとうございました...

4

5 に答える 5

21

少なくとも直接はできません。

できることは、メモリウィンドウに配置し、列数が1行のデータ&array[0][0]と一致するようにサイズを変更することです。array

または、ウォッチウィンドウに入れarray[0],17て、それを繰り返すこともできますarray[1],17

おそらくあなたが探していた答えではありませんが、ウォッチウィンドウはかなり強力ですが、あなたが望むことをすることができません。

于 2012-05-10T15:06:42.840 に答える
2

2Dで整理された値をよりグラフィカルな方法で表示したい場合は、ArrayVisualizer拡張機能を試すことができます。小さな多次元配列で正常に機能します。

これは無料のオープンソース拡張機能であり、MarketPlaceからダウンロードできます。アプリケーションのデバッグ中に配列を表示するように設計されています。Visual Studio 2010、2012、2013、および2015のバージョンがありますが、残念ながら2017に更新されていないようです。

于 2018-06-13T06:23:07.520 に答える
0

提案されたソリューションは、1Dアレイでのみ機能します。ただし、各行のサイズが固定されている2D配列(数学のように最初の次元を行として表示)は、次のように1D配列として割り当てることができます。

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);
    }
}

次にa、コードで行列として使用し、行列が10x10の場合などを使用して視覚化b,100できます。

于 2015-11-23T16:44:12.833 に答える
0

配列Qをグローバルスコープに配置すると、そのすべての要素を確認できます(ローカル配列の場合は、グローバル配列にコピーしてグローバル配列を操作できます)。

int Q[17][17];
int main(){
    int x=1, y=1, z;
}

デバッグとアルゴリズムが十分に検証された後、必要に応じてローカル配列を使用できます

于 2018-05-30T08:49:57.607 に答える
0

静的に割り当てられたグローバルメモリまたはローカル変数を直接表示できます

VS2010で動的に割り当てられた2-D配列を表示する方法が見つかりませんでした(1-Dのみ)。VS2019は、

double ** a;
a = (double**)malloc(5 * sizeof(double*));
a[0]=(double*)malloc(10 * sizeof(double));
...

(double(*)[10]) a[0],5(ウォッチウィンドウに追加)

画像

そして、これはここでも機能します (double(**)[10])a,5

于 2021-06-29T09:39:06.097 に答える