5

私は2Dアレイを備えたVs2010c++で作業しています。私は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ポインタに変更してもかまいません。

しかし、私の問題はデバッグにあります。ポインタを使用しているため、配列の内容が表示されません。

他に選択肢はありますか?

ベクトルは使いたくない。

4

2 に答える 2

15

Memory1 つの方法は、ビューアを使用することです。デバッグ中 (ブレークポイントで停止したとき)、メニュー[デバッグ] > [ウィンドウ] > [メモリ] > [メモリ 1 ]に移動して、メモリ ビューアーを取得します。次に、メモリアドレスを入力して(ポインタから値をコピーして貼り付けます)、プログラムメモリのその領域の周りのメモリを表示できるようにします。

メモリ ビューアーを右クリックすると、データの表示方法を選択できます (ANSI として、4 つの整数として、2 バイト整数として、float として、bla bla... として)。

Watchまた、デバッグ時にウィンドウを使用することもできます。ポインターを配列として使用するだけです(たとえば、ポインターがchar * tの場合、構文はポインターがt[0]指すデータを提供しますt

于 2013-02-13T16:17:53.257 に答える
8

QuickWatchウィンドウで、ポインタ変数の名前に続けてコンマと表示する配列インデックスの数を入力できますMyMat, 10

于 2013-02-13T16:24:59.743 に答える