5

我正在使用二维数组在 Vs2010 c++ 中工作。我从一维指针开始并使用操作 [] 如下:

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 指针。

但是我的问题是调试。因为我使用的是指针,所以我看不到数组内容。

还有其他选择吗?

我不喜欢使用矢量。

4

2 回答 2

15

一种方法是使用Memory查看器。调试时(在断点处停止时),转到菜单Debug > Windows > Memory > Memory 1以获取内存查看器。然后键入内存地址(复制粘贴指针中的值),以便您可以查看程序内存区域周围的内存。

当您右键单击内存查看器时,您可以选择查看数据的方式(如 ANSI、4 个整数、2 字节整数、浮点数、bla bla ...)

您也可以在调试时使用该Watch窗口。只需将您的指针用作数组(例如,如果您的指针是char * t,语法t[0]将给出指针指向的数据t

于 2013-02-13T16:17:53.257 回答
8

在 QuickWatch 窗口中,您可以键入指针变量的名称,后跟逗号以及要查看的数组索引的数量,例如MyMat, 10

于 2013-02-13T16:24:59.743 回答