Visual Studio2010でc++コードをデバッグしていて、配列のコンテンツ、たとえばQ(17x17)を確認したいと思います。ブレークポイントを挿入してデバッグしようとすると、変数「Q」のみが表示されます。「ウォッチ」画面に移動して「Q、17」に名前を変更すると、1つ下のレベルが表示されます。
しかし、私は他の次元も見たいです。「Q、17,17」は書けません。適切なコマンドは何ですか?
ありがとうございました...
Visual Studio2010でc++コードをデバッグしていて、配列のコンテンツ、たとえばQ(17x17)を確認したいと思います。ブレークポイントを挿入してデバッグしようとすると、変数「Q」のみが表示されます。「ウォッチ」画面に移動して「Q、17」に名前を変更すると、1つ下のレベルが表示されます。
しかし、私は他の次元も見たいです。「Q、17,17」は書けません。適切なコマンドは何ですか?
ありがとうございました...
少なくとも直接はできません。
できることは、メモリウィンドウに配置し、列数が1行のデータ&array[0][0]
と一致するようにサイズを変更することです。array
または、ウォッチウィンドウに入れarray[0],17
て、それを繰り返すこともできますarray[1],17
。
おそらくあなたが探していた答えではありませんが、ウォッチウィンドウはかなり強力ですが、あなたが望むことをすることができません。
2Dで整理された値をよりグラフィカルな方法で表示したい場合は、ArrayVisualizer拡張機能を試すことができます。小さな多次元配列で正常に機能します。
これは無料のオープンソース拡張機能であり、MarketPlaceからダウンロードできます。アプリケーションのデバッグ中に配列を表示するように設計されています。Visual Studio 2010、2012、2013、および2015のバージョンがありますが、残念ながら2017に更新されていないようです。
提案されたソリューションは、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
できます。
配列Qをグローバルスコープに配置すると、そのすべての要素を確認できます(ローカル配列の場合は、グローバル配列にコピーしてグローバル配列を操作できます)。
int Q[17][17];
int main(){
int x=1, y=1, z;
}
デバッグとアルゴリズムが十分に検証された後、必要に応じてローカル配列を使用できます
静的に割り当てられたグローバルメモリまたはローカル変数を直接表示できます
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