我正在使用2D阵列的Vs2010 c ++工作。 我从1D指针开始,使用[]操作[],如下所示:
class CMatrix
{
void clear();
public:
int nRows;
int nCols;
short * MyMat;
CMatrix();
CMatrix(int r,int c);
~CMatrix(void);
void SetMatrix(int r,int c);
short * operator[] (const int row)
{
return MyMat + (row*nCols);
}
};
我不介意改为2D指针。
然而我的问题是调试。因为我正在使用指针,所以无法看到数组内容。
还有其他选择吗?
我不想使用矢量。
答案 0 :(得分:11)
一种方法是使用Memory
查看器。
在调试时(在断点处停止时),转到菜单调试> Windows > 记忆> 内存1 以获取内存查看器。然后键入内存地址(复制粘贴指针中的值),以便可以查看程序内存区域周围的内存。
右键单击内存查看器时,您可以选择查看数据的方式(如ANSI,4个整数,2个整数,浮点数,bla bla ...)
您也可以在调试时使用Watch
窗口。只需将指针用作数组(例如,如果指针为char * t
,则语法t[0]
将指针指向t
答案 1 :(得分:8)
在QuickWatch窗口中,您可以键入指针变量的名称,后跟逗号和要查看的数组索引的数量,例如MyMat, 10
。