如何在 Visual Studio 代码中调试时扩展数组

deb*_*nka 11 c++ debugging watch visual-studio-code

这是我的代码,它是一个简单的排列代码块:

void arrange(char c[], int N, int start)
{
    if (start == N)
    {
        print(c, N);
        return;
    }
    for (int i = start; i < N; i++)
    {
        swap(c[start], c[i]);
        arrange(c, N, i + 1);
        swap(c[start], c[i]);
    }
}

int main(int argc, char const *argv[])
{
    char c[] = { 'A','B','C' };
    int N = (sizeof(c) / sizeof(char));
    arrange(c, N, 0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它没有给出我期望的输出,我想调试这段代码。我想观察输入数组中的字符交换。但是当我调试时,输入数组无法扩展。

小智 24

如果您有一个t由 指向的数组p,如下所示:

double t[5] = {0,1,2,4.5,2.3};
double *p = t;
Run Code Online (Sandbox Code Playgroud)

如果你重铸它,你可以p在调试器上观看。只需在监视窗口上写下:

(double[5]) *p
Run Code Online (Sandbox Code Playgroud)


Aid*_*her 9

当添加一个喙点时,arrange()c 数组显示它的地址,0x7fffffffdd15如下所示:

问题

要解决这个问题,您应该在左下角看到“WATCH”部分。
添加 <your_array_name>、<array_length>,如下所示:

在此输入图像描述

现在在监视部分,您应该看到如下所示的数组:

在此输入图像描述

  • 最简单的方法!顺便说一句,你在哪里找到这个魔法的? (2认同)