我正在使用Visual Studio 2010调试我的C++代码,想要查看我的数组Q的内容,该数组是17x17的。当我插入断点并尝试进行调试时,我只能看到变量"Q"。当我将其带到"监视"屏幕并将其重命名为"Q,17"时,我可以看到一级下面的内容。
但我也想看到另一个维度的内容。我不能写"Q,17,17"。正确的命令是什么?
谢谢...
我正在使用Visual Studio 2010调试我的C++代码,想要查看我的数组Q的内容,该数组是17x17的。当我插入断点并尝试进行调试时,我只能看到变量"Q"。当我将其带到"监视"屏幕并将其重命名为"Q,17"时,我可以看到一级下面的内容。
但我也想看到另一个维度的内容。我不能写"Q,17,17"。正确的命令是什么?
谢谢...
你不能直接这样做。
但是你可以在内存窗口中放置&array[0][0]
,然后调整大小以使列数匹配array
数据的一行。
或者,你可以将array[0],17
放入监视窗口,然后重复为array[1],17
等。
也许这不是你想要的答案,但是监视窗口虽然非常强大,但无法实现你想要的功能。
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
作为矩阵,并使用例如b,100
进行可视化,如果您的矩阵是10乘10。
静态分配的全局内存或本地变量可以直接查看
我没有找到在VS2010中查看动态分配的二维数组的方法(只能查看一维数组)。 但是在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
int Q[17][17];
int main(){
int x=1, y=1, z;
}
调试和算法验证通过后,您可以随意使用本地数组